牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要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)分。 数据保证至少有一个闹钟可以让牛牛及时到达教室。
# include <stdio.h>
# include <malloc.h>typedef struct node
{
int Hi;
int Mi;
int sum;
}Node,*Pnode;
int main()
{
int N;
Node t;
scanf("%d",&N);
Pnode clock=(Pnode)malloc(sizeof(Node)*N);
for(int i=0;i<N;i++)
{
scanf("%d%d",&clock[i].Hi,&clock[i].Mi);
getchar();
clock[i].sum=clock[i].Hi*60+clock[i].Mi;
}
for(int i=0;i<N;i++)
for(int j=i+1;j<N;j++)
{
if(clock[i].sum<clock[j].sum)
{
t=clock[i];
clock[i]=clock[j];
clock[j]=t;
}
}
int time,h1,m1;
scanf("%d%d%d",&time,&h1,&m1);
time=h1*60+m1-time;
for(int i=0;i<N;i++)
{
if(clock[i].sum<=time)
{
printf("%d %d",clock[i].Hi,clock[i].Mi);
break;
}
}
return 0;
}