해결 방법 :
시간과 대부분의 캔에서 목표 시간 차이를 찾기 (음수가 될 수 없습니다)
다음과 같이 코드입니다 :
#include<stdio.h>
#include<iostream>
#include<vector>
#include<math.h>
#define INF 0x3f3f3f3f
using namespace std;
struct timer{
int h,m;
timer(int hh,int mm){
h=hh;
m=mm;
}
};
vector<timer> vec;
int main(){
int n,h,m,r,lh,lm,minl=INF;
timer res(0,0);
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&h,&m);
timer t(h,m);
vec.push_back(t);
}
scanf("%d",&r);
scanf("%d%d",&lh,&lm);
for(int i=0;i<n;i++){
int tmp=(lh*60+lm)-(vec[i].h*60+vec[i].m+r);
if(tmp<minl&&tmp>=0){
minl=tmp;
res=vec[i];
}
}
printf("%d %d",res.h,res.m);
return 0;
}