回文日期
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
回文日期
题目描述
在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。
牛牛习惯用 位数字表示一个日期,其中,前 位代表年份,接下来 位代表月份,最后 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。
牛牛认为,一个日期是回文的,当且仅当表示这个日期的 位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。
一个 位数字是回文的,当且仅当对于所有的 (),从左向右数的第 个数字和第 个数字(即从右向左数的第 个数字)是相同的。
例如:
- 对于 2016 年 11 月 19 日,用 位数字 20161119 表示,它不是回文的。
- 对于 2010 年 1 月 2 日,用 位数字 20100102 表示,它是回文的。
- 对于 2010 年 10 月 2 日,用 位数字 20101002 表示,它不是回文的。
每一年中都有 个月份:
其中, 月每个月有 天; 月每个月有 天;而对于 月,闰年时有 天,平年时有 天。
一个年份是闰年当且仅当它满足下列两种情况其中的一种:
- 这个年份是 的整数倍,但不是 的整数倍;
- 这个年份是 的整数倍。
例如:
- 以下几个年份都是闰年:2000、2012、2016。
- 以下几个年份是平年:1900、2011、2014。
输入格式
输入包括两行,每行包括一个 位数字。
第一行表示牛牛指定的起始日期。
第二行表示牛牛指定的终止日期。
保证 date1 和 date2 都是真实存在的日期,且年份部分一定为 位数字,且首位数字不为 。
保证 date1 一定不晚于 date2。
输出格式
输出一行,包含一个整数,表示在 date1 和 date2 之间,有多少个日期是回文的。
样例 #1
样例输入 #1
20110101
20111231
样例输出 #1
1
符合条件的日期是 20111102。
样例 #2
样例输入 #2
20000101
20101231
样例输出 #2
2
符合条件的日期是 20011002 和 20100102。
提示
对于 的数据,满足 date1 = date2。
年份部分为 之间的四位整数,保证 date1 与 date2 均为真实存在的日期。
来源:NOIP 2016 普及组 T2「回文日期」(NowCoder 16438)
2026swpuacm秋招复赛-终结版
- Status
- Done
- Rule
- XCPC
- Problem
- 9
- Start at
- 2026-10-31 9:00
- End at
- 2026-10-31 12:00
- Duration
- 3 hour(s)
- Host
- Partic.
- 28