牛牛的闹钟

题目描述
牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床

输入描述:
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。
接下来的一行包含一个整数,表示从起床算起他需要X(0<=X<=100)分钟到达教室。
接下来的一行包含两个整数,表示上课时间为A(0<=A<24)时B(0<=B<60)分。
数据保证至少有一个闹钟可以让牛牛及时到达教室。

输出描述:
输出两个整数表示牛牛最晚起床时间。

 1 N = int(input().strip())
 2 minutes = [0] * N
 3 for i in range(N):
 4     hour,minute = [int(x) for x in input().strip().split()]
 5     minutes[i] = hour * 60 + minute
 6 minutes = sorted(minutes,key=lambda m:-m)
 7 delay = int(input())
 8 t_hour,t_minute = [int(x) for x in input().strip().split()]
 9 target = t_hour * 60 + t_minute
10 getup = 0
11 for j in range(N):
12     if target >= minutes[j] + delay:
13         getup = minutes[j]
14         break
15         
16 g_hour = getup // 60
17 g_minute = getup % 60
18 print(g_hour,g_minute)

算法思路:排序,时间转换。

posted on 2019-07-23 08:46  Sempron2800+  阅读(262)  评论(0编辑  收藏  举报