题目描述
牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要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)
算法思路:排序,时间转换。