题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805516654460928
题目大意:给你m组信息,其中包括了每个人的ID号、签到时间、签退时间,让你找出一天之中最早来和最晚走的同学的ID,输出。
思路:简单的字符串处理。时间统一换算成秒。
#include<bits/stdc++.h>
using namespace std;
int n,t1,t2,idx1,idx2;
string a,b,c;
map<int,string> mp;
int main()
{
cin>>n;
int st=0x3f3f3f3f;
int ed=0;
for(int i=1;i<=n;i++){
cin>>a>>b>>c;
mp[i]=a;
t1=((b[0]-'0')*10+(b[1]-'0'))*3600+((b[3]-'0')*10+(b[4]-'0'))*60+((b[6]-'0')*10+(b[7]-'0'));
t2=((c[0]-'0')*10+(c[1]-'0'))*3600+((c[3]-'0')*10+(c[4]-'0'))*60+((c[6]-'0')*10+(c[7]-'0'));
if(t1<st) {
idx1=i;
st=t1;
}
if(t2>ed) {
idx2=i;
ed=t2;
}
}
cout<<mp[idx1]<<' '<<mp[idx2]<<endl;
}