A1006 Sign In and Sign Out (25point(s))
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxm = 1000;
int M;
struct Node{
char ID[20];
int InTime;
int OutTime;
} node[maxm];
int changetosecond(int h, int m, int s){
return 3600*h + 60*m + s;
}
int InTime = 3600*24;
int OutTime = 0;
int Inindex = 1;
int Outindex = 1;
int main(){
scanf("%d", &M);
int hh, mm, ss;
for(int i=0; i<M; i++){
scanf("%s", node[i].ID);
scanf("%d:%d:%d", &hh, &mm, &ss);
node[i].InTime = changetosecond(hh,mm,ss);
if(InTime > node[i].InTime) {
InTime = node[i].InTime;
Inindex = i;
}
scanf("%d:%d:%d", &hh, &mm, &ss);
node[i].OutTime = changetosecond(hh, mm, ss);
if(OutTime < node[i].OutTime) {
OutTime = node[i].OutTime;
Outindex = i;
}
}
printf("%s %s\n", node[Inindex].ID, node[Outindex].ID);
return 0;
}