牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要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:
3
5 0
6 0
7 0
59
6 59
输出例子1:
6 0
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int [][] clock=new int[n][2];
for(int i=0;i<n;i++){
clock[i][0]=sc.nextInt();
clock[i][1]=sc.nextInt();
}
int x=sc.nextInt();
int a=sc.nextInt();
int b=sc.nextInt();
int a1=a;
int b1=b-x;
while(b1<0){
a1--;
b1+=60;
if(a1<0)
a1+=24;
}
int s=a1*60+b1;
int p=-1;
int de=-1;
for(int i=0;i<n;i++){
int t=clock[i][0]*60+clock[i][1];
//de>=0就表示来得及
if(de==-1 && s>=t)
de=t;
//de>s-t,就表示当前这个时间比之前的,离预计出发时间近
if(s>=t && t>=de){
p=i;
de=t;
}
}
System.out.println(clock[p][0]+" "+clock[p][1]);
}
}