1 #include <stdio.h> 2 #include <algorithm> 3 #include <iostream> 4 #include <string.h> 5 using namespace std; 6 7 struct stu 8 { 9 char ID[16]; 10 int GetTime[3]; 11 int LeaveTime[3]; 12 }; 13 14 stu Student[101]; 15 16 17 18 int main() 19 { 20 int n,i,j; 21 int m; 22 while(scanf("%d",&m)!=EOF) 23 { 24 25 26 27 for(j=0;j<m;j++) 28 { 29 scanf("%s %d:%d:%d %d:%d:%d",Student[j].ID,&Student[j].GetTime[0],&Student[j].GetTime[1],&Student[j].GetTime[2],&Student[j].LeaveTime[0],&Student[j].LeaveTime[1],&Student[j].LeaveTime[2]); 30 } 31 32 int GetHour,GetMin,GetSec,LeaveHour,LeaveMin,LeaveSec; 33 34 GetHour=GetMin=GetSec=50; 35 LeaveHour=LeaveHour=LeaveSec=-1; 36 37 int OpenMan,CloseMan; 38 39 for(j=0;j<m;j++) 40 { 41 if(Student[j].GetTime[0]<GetHour) 42 { 43 GetHour=Student[j].GetTime[0]; 44 OpenMan=j; 45 } 46 else if(Student[j].GetTime[0]==GetHour) 47 { 48 if(Student[j].GetTime[1]<GetMin) 49 { 50 GetMin=Student[j].GetTime[1]; 51 OpenMan=j; 52 } 53 else if(Student[j].GetTime[1]==GetMin) 54 { 55 if(Student[j].GetTime[2]<GetSec) 56 { 57 GetSec=Student[j].GetTime[2]; 58 OpenMan=j; 59 } 60 } 61 } 62 63 64 if(Student[j].LeaveTime[0]>LeaveHour) 65 { 66 LeaveHour=Student[j].LeaveTime[0]; 67 CloseMan=j; 68 } 69 else if(Student[j].LeaveTime[0]==LeaveHour) 70 { 71 if(Student[j].LeaveTime[1]>LeaveMin) 72 { 73 LeaveMin=Student[j].LeaveTime[1]; 74 CloseMan=j; 75 } 76 else if(Student[j].LeaveTime[1]==LeaveMin) 77 { 78 if(Student[j].LeaveTime[2]>LeaveSec) 79 { 80 LeaveSec=Student[j].LeaveTime[2]; 81 CloseMan=j; 82 } 83 } 84 } 85 } 86 87 88 printf("%s %s ",Student[OpenMan].ID,Student[CloseMan].ID); 89 90 } 91 return 0; 92 }