#include <iostream>
#include <string.h>
using namespace std;
int main() {
int m;
cin>>m;
char inmin[10]="24",outmax[10]="-1",idtemp[20],in[10],out[10],unlock[20],lock[20];
for(int i=0;i<m;i++){
cin>>idtemp>>in>>out;
if(strcmp(in,inmin)<0) {
strcpy(inmin,in);
strcpy(unlock,idtemp);
}
if(strcmp(out,outmax)>0){
strcpy(outmax,out);
strcpy(lock,idtemp);
}
}
cout<<unlock<<" "<<lock;
return 0;
}
柳神 :scanf 特定格式输入,将时间统一化成秒
#include <iostream>
#include <climits>
using namespace std;
int main() {
int n, minn = INT_MAX, maxn = INT_MIN;
scanf("%d", &n);
string unlocked, locked;
for(int i = 0; i < n; i++) {
string t;
cin >> t;
int h1, m1, s1, h2, m2, s2;
scanf("%d:%d:%d %d:%d:%d", &h1, &m1, &s1, &h2, &m2, &s2);
int tempIn = h1 * 3600 + m1 * 60 + s1;
int tempOut = h2 * 3600 + m2 * 60 + s2;
if (tempIn < minn) {
minn = tempIn;
unlocked = t;
}
if (tempOut > maxn) {
maxn = tempOut;
locked = t;
}
}
cout << unlocked << " " << locked;
return 0;
}