#D0994. 日期换算
日期换算
题目描述
33DAI 在整理一份日程记录。他把 年 月 日记作第 天,此后每过一天编号加一: 年 月 日是第 天, 年 月 日是第 天,依此类推。
日期由年、月、日组成。一年有 个月:、、、、、、 月各有 天,、、、 月各有 天, 月平年有 天、闰年有 天。两种规则下月份的天数都不变,唯一的区别是哪些年份是闰年:
- 规则一(现行公历,即格里高利历):年份 是闰年,当且仅当( 能被 整除,且 不能被 整除),或者( 能被 整除)。
- 规则二:在规则一的基础上再加一条 —— 若 能被 整除,则 不是闰年。
给定 个整数 ,33DAI 想知道:第 天在两种规则下分别是哪一年哪一月哪一日。
输入格式
从标准输入读入数据。
输入的第一行是一个整数 (),表示询问的个数。
接下来 行,每行一个整数 (),表示一次询问。
输出格式
输出到标准输出。
输出 行,顺序与输入一致。对每个询问输出一行六个整数 ,用一个空格隔开:
- :第 天在规则一下的年、月、日;
- :第 天在规则二下的年、月、日。
年、月、日都不补前导零。
2
1
2
2026 1 1 2026 1 1
2026 1 2 2026 1 2
3
365
366
731
2026 12 31 2026 12 31
2027 1 1 2027 1 1
2028 1 1 2028 1 1
3
428854
428855
428856
3200 2 29 3200 3 1
3200 3 1 3200 3 2
3200 3 2 3200 3 3
1
1000000000000000000
2737907006990533 8 20 2737909349534656 4 26
样例解释
- 样例 1:第 天即 年 月 日,第 天是它的后一天,即 年 月 日;两种规则下这两天的日期相同。
- 样例 2: 年是平年,有 天,所以第 天是 年 月 日,第 天是 年 月 日; 年也有 天,所以第 天是 年 月 日。
- 样例 3: 能被 整除,按规则一是闰年, 月有 天;按规则二它不是闰年, 月只有 天。所以第 天在规则一下是 年 月 日,在规则二下是 年 月 日;第 天在规则一下是 年 月 日,在规则二下是 年 月 日。
提示
- 第 天可能落在很远的将来(年份最大接近 ),读入与计算请使用 位整型;输出 行,每行六个整数用单个空格隔开,年、月、日都不补前导零。
数据范围
对于所有测试数据,保证 ,。
| 子任务 | 分值 | 测试点数 | 限制 |
|---|---|---|---|
| , | |||
| , | |||
| 无额外限制 |
共 个测试点,按测试点计分:子任务 、 的每个测试点 分,子任务 的每个测试点 分。