用向量和sort函数做的,自己定义了结构体记录record和时间记录timerec
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <algorithm>
using namespace std;
int str2int(string str){
int result=0;
for(int i=0;i<str.size();i++){
result*=10;
result+=(int)(str[i]-'0');
}
return result;
}
struct timerec{
int hour;
int min;
int sec;
timerec(){}
timerec(int h,int m,int s):hour(h),min(m),sec(s){}
timerec(string str){
int pos=str.find(':');
string h=str.substr(0,pos);
str=str.substr(pos+1);
pos=str.find(':');
string m=str.substr(0,pos);
string s=str.substr(pos+1);
hour=str2int(h);
min=str2int(m);
sec=str2int(s);
}
friend ostream& operator<<(ostream& out,const timerec& t);
bool operator<(const timerec& b){
if(hour==b.hour){
if(min==b.min){
if(sec==b.sec){
return false;
}else{
return sec<b.sec;
}
}else{
return min<b.min;
}
}else{
return hour<b.hour;
}
}
};
/*
ostream& operator<<(ostream& out,const timerec& t){
cout<<setw(2)<<setfill('0')<<t.hour;
cout<<':';
cout<<setw(2)<<setfill('0')<<t.min;
cout<<':';
cout<<setw(2)<<setfill('0')<<t.sec;
return out;
}
*/
struct record{
string id;
timerec come;
timerec go;
record(){}
record(string t1,string t2,string t3){
id=t1;
timerec c=timerec(t2);
timerec g=timerec(t3);
come=c;
go=g;
}
};
bool comecmp(record a,record b){
return a.come<b.come;
}
bool gocmp(record a,record b){
return b.go<a.go;
}
int main(){
int n;
while(cin>>n){
cin.ignore();
if(n==0)
break;
string str;
vector<record> r;
for(int i=0;i<n;i++){
getline(cin,str);
int pos=str.find(' ');
string t1=str.substr(0,pos);
str=str.substr(pos+1);
pos=str.find(' ');
string t2=str.substr(0,pos);
string t3=str.substr(pos+1);
record temp=record(t1,t2,t3);
r.push_back(temp);
}
sort(r.begin(),r.end(),comecmp);
cout<<r[0].id<<' ';
sort(r.begin(),r.end(),gocmp);
cout<<r[0].id<<endl;
}
}