将每个人的进入和出去时间都转为秒,找到谁的秒数最大和最小,进行标记,然后输出。
#include <bits/stdc++.h>
using namespace std;
// typedef pair<int,int> pii;
// map<string,pii> mp;
int n;
int main(){
cin >> n;
string s,in,out;
string ans1,ans2;
int mx = -0x3f3f3f3f,mi = 0x3f3f3f3f;
for(int i = 0; i < n; i++){
cin >> s >> in >> out;
int st = 0, ed = 0, hh = 0, mm = 0, ss = 0;
for(int i = 0; i < 2; i++){
hh = hh * 10 + (in[i] - '0');
}
for(int i = 3; i < 5; i++){
mm = mm * 10 + (in[i] - '0');
}
for(int i = 6; i < 8; i++){
ss = ss * 10 + (in[i] - '0');
}
st = hh * 3600 + mm * 60 + ss;
hh = 0, mm = 0, ss = 0;
for(int i = 0; i < 2; i++){
hh = hh * 10 + (out[i] - '0');
}
for(int i = 3; i < 5; i++){
mm = mm * 10 + (out[i] - '0');
}
for(int i = 6; i < 8; i++){
ss = ss * 10 + (out[i] - '0');
}
ed = hh * 3600 + mm * 60 + ss;
// mp[s].first = st;
// mp[s].second = ed;
if(st < mi){
mi = st;
ans1 = s;
}
if(ed > mx){
mx = ed;
ans2 = s;
}
}
cout << ans1 <<" " << ans2 << endl;
return 0;
}