3157 - 平移日期

题目描述

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

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

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

输入

第一行:三个整数 Y M D(表示年、月、日) 第二行:一个整数 Q(操作次数) 接下来 Q 行:每行两个整数 op x

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

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

样例

输入

2020 2 28
1
1 1

输出

2020 2 29

输入

9999 2 28
5
1 1
1 1
2 60
1 365
2 305

输出

9999 3 2

输入

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

输出

7777 2 25
说明

0≤Q≤10^5, x≥0
保证初始日期合法,且在每一步操作后以及最终结果都合法并且年份仍在 [1,10^5] 范围内。
使用公历的闰年判定规则:

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

奇遇编程

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 1
通过人数 1
金币数量 1 枚
统计
上一题 下一题