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\n",Student[OpenMan].ID,Student[CloseMan].ID);
89
90 }
91 return 0;
92 }