每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。
接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。
接下来的一行包含一个整数,表示从起床算起他需要X(0<=X<=100)分钟到达教室。
接下来的一行包含两个整数,表示上课时间为A(0<=A<24)时B(0<=B<60)分。
数据保证至少有一个闹钟可以让牛牛及时到达教室。
输出两个整数表示牛牛最晚起床时间。
3 5 0 6 0 7 0 59 6 59
6 0
PYTHON:一次遍历
n = int(raw_input())
v=[]
for i in range(n):
line = raw_input()
v.append(int(line.split(' ')[0])*60 + int(line.split(' ')[1]))
time = int(raw_input())
line = raw_input()
tar = int(line.split(' ')[0])*60 + int(line.split(' ')[1])
ma = v[0]
for i in range(1, n):
if v[i] >= ma and (tar-v[i]) >= time:
ma = v[i]
else:
continue
print str(ma/60)+' '+str(ma%60)
clock_num =int(input())clock_time =[]fori inrange(clock_num):hour,minute =list(map(int,input().split()))clock_time.append(hour*60+minute)clock_time =sorted(clock_time) #记得排序X =int(input())time =list(map(int,input().split()))Time =time[0]*60+time[1]latest_time =Time -Xfori inrange(clock_num-1,-1,-1):ifclock_time[i] <=latest_time:late =clock_time[i]break # 非常重要,因为找到第一个就要停下来hour =int(late/60)minute =late%60print(str(hour)+' '+str(minute))
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
vector<int> co(n);
int bg,tm;
for(int i=0;i<n;i++)
{
cin>>bg>>tm;
co[i]=bg*60+tm;
}
int inter;
cin>>inter;
cin>>bg>>tm;
int fin=bg*60+tm;
sort(co.begin(),co.end());
reverse(co.begin(),co.end());
for(int i=0;i<n;i++)
{
if(co[i]+inter<=fin)
{
cout<<co[i]/60<<' '<<co[i]%60<<endl;
break;
}
}
}
}