A96437.日期平移

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个起始日期(年、月、日,采用公历),接下来有若干次操作:

  • 操作 1:向后(未来)平移若干天
  • 操作 2:向前(过去)平移若干天

请在按顺序依次执行所有操作后,输出最终的年月日。

输入格式

第一行:三个整数 Y M D(表示年、月、日)

第二行:一个整数 Q(操作次数)

接下来 Q 行:每行两个整数 op x

  • op = 1 表示向后平移 x
  • op = 2 表示向前平移 x
  • x ≥ 0

输出格式

输出三个整数 Y M D,表示所有操作执行完毕后的日期。

输入输出样例

  • 输入#1

    2020 2 28
    1
    1 1
    

    输出#1

    2020 2 29
    
  • 输入#2

    1000000000 2 28
    5
    1 1
    1 1
    2 60
    1 365
    2 305
    

    输出#2

    1000000000 3 1
    
  • 输入#3

    777777777 3 1
    5
    2 1
    1 365
    2 366
    1 730
    2 732
    

    输出#3

    777777777 2 25
    

说明/提示

保证初始日期合法,且在每一步操作后以及最终结果都合法并且年份仍在 [1,109][1, 10^9] 范围内。

使用公历的闰年判定规则:

  • 能被 400 整除的年份是闰年;
  • 能被 4 整除但不能被 100 整除的年份是闰年;
  • 其余为平年。
首页