#NC2509H. 连胜精英
连胜精英
题目描述
在语言学习平台多邻国的系统中,连胜表示用户连续完成至少一节课的天数计数。多邻国用这种方法压力你保持学习习惯。
虽然高级会员可以使用连胜激冻功能在缺勤时维持连胜,但免费用户会受限,本题中我们假设该功能不可用。尽管如此,你仍有一种能保持连胜的秘诀:系统会根据设备设置的本地时区计算连胜天数。
这意味着你可以在提交课程前调整设备时区,系统会按照修改后的时区计算。利用这个特性,理论上你可以在"明天"完成一节课,然后回到"今天"再提交一节课!由于时区范围从 UTC-12 到 UTC+14 (Timezone),UTC+8 的用户最多可以将时钟回调 20 小时或调快 6 小时。为简化问题,我们假设可以调整到任意时区(包括非整数时区),而不需要考虑现实中实际存在的时区列表。其他可能影响计算的因素(如夏令时)也忽略不计。
给定用户的所有提交记录(格式为 YYYY-MM-DD HH:mm:SS,UTC+8 时区),请通过最优选择每次提交前的时区设置,计算可能达到的最大和最小最长连胜天数。最长连胜天数定义为:在给定时区调整方案下,最长的在时间 00:00:00 至 23:59:59 至少有一次提交记录的连续天数。
在这个问题中,我们使用常见的闰年规则。一个年份被称为闰年当且仅当:
- 该年份能被 整除,并且;
- 该年份不能被 整除,除非它也能被 整除。
否则,该年份称为平年。例如, 是一个闰年,但 是一个平年。每个月的天数如下表所示。
| 月份 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 天数(平年) | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 30 | 31 | 30 | 31 | |
| 天数(闰年) | 29 | |||||||||||
输入格式
第一行包含整数 ()表示提交记录数。
接下来 行每行包含一个 UTC+8 时区的时间戳,格式为 YYYY-MM-DD HH:mm:SS,保证按时间顺序给出。
保证所有日期都在 2000-01-01 至 2999-12-31 之间。
输出格式
输出两个空格分隔的整数:可能的最大最长连胜天数和最小最长连胜天数。
3
2020-02-29 09:10:23
2020-02-29 11:45:14
2020-02-29 12:34:58
2 1
3
2025-08-12 18:00:00
2025-08-12 18:00:01
2025-08-12 18:00:02
3 1
解释 #2
- 不做任何修改,那么最长连胜是 天(2025 年 8 月 12 日);
- 将第一个提交记录调慢 20 小时(UTC+12),第二个提交记录调快 6 小时(UTC+14),那么最长连胜是 天(2025 年 8 月 11 日到 2025 年 8 月 13 日)。