A7055. 日期平移
编程题
普及/提高-
知识点
题目描述
给定一个起始日期(年、月、日,采用公历),接下来有若干次操作:
- 操作 $1$:向后(未来)平移若干天
- 操作 $2$:向前(过去)平移若干天
请在按顺序依次执行所有操作后,输出最终的年月日。
- 操作 $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
9999 2 28 5 1 1 1 1 2 60 1 365 2 305
输出 #2
9999 3 2
输入 #3
7777 3 1 5 2 1 1 365 2 366 1 730 2 732
输出 #3
7777 2 25
说明/提示
$0\le Q\le 10^5,x\ge 0$
保证初始日期合法,且**在每一步操作后以及最终结果**都合法并且年份仍在 $[1, 10^5]$ 范围内。
使用**公历**的闰年判定规则:
- 能被 $400$ 整除的年份是闰年;
- 能被 $4$ 整除但不能被 $100$ 整除的年份是闰年;
- 其余为平年。
保证初始日期合法,且**在每一步操作后以及最终结果**都合法并且年份仍在 $[1, 10^5]$ 范围内。
使用**公历**的闰年判定规则:
- 能被 $400$ 整除的年份是闰年;
- 能被 $4$ 整除但不能被 $100$ 整除的年份是闰年;
- 其余为平年。