#G2008. 数字时钟
数字时钟
题目描述
教室里有一块电子钟,按 hh:mm:ss 的格式显示时间( 小时制,不足两位的前面补 ),从 00:00:00 一直走到 23:59:59。
小 D 发现,把屏幕上的 个数字加起来,可以得到一个「数字和」。例如 10:00:02 的数字和是 。
给出同一天里的两个时刻 和 ( 不晚于 ),以及一个整数 。请你回答:从 到 (两端都算)的每一秒里,有多少个时刻的数字和恰好等于 ?其中最早的一个是什么时刻?
输入格式
第一行是时刻 ,第二行是时刻 ,格式都是 hh:mm:ss。
第三行一个整数 。
输出格式
第一行一个整数,表示数字和等于 的时刻个数。
第二行输出其中最早的那个时刻,格式为 hh:mm:ss;如果一个这样的时刻都没有,输出 -1。
样例 #1
样例输入 #1
09:59:50
10:00:20
3
样例输出 #1
3
10:00:02
样例解释
从 09:59:50 到 10:00:20 共 个时刻。数字和等于 的有 10:00:02、10:00:11、10:00:20 三个,最早的是 10:00:02。注意 10:00:20 恰好是 ,也要算进去。
样例 #2
样例输入 #2
00:00:00
23:59:59
39
样例输出 #2
0
-1
样例解释
一天中数字和最大的时刻是 19:59:59,数字和为 ,所以没有数字和等于 的时刻。
提示
数据范围
- 对于 的数据: 为
00:00:00, 为23:59:59; - 对于 的数据:、 都是合法时刻且 不晚于 ,。
提示
- 读入
09:59:50这样的时刻,可以用int读数字、用char变量「吃掉」中间的冒号:cin >> h >> c >> m >> c >> s;,也可以用scanf("%d:%d:%d", &h, &m, &s);。 - 判断某个时刻是否在 与 之间,可以把时刻换算成「从
00:00:00起过了多少秒」再比较。 - 输出时不足两位要补 ,可以用
printf("%02d", x);。