大佬的想法真是妙
/* HDU1234 开门人和关门人 */
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct node
{
char name[20];
int starttime;
int endtime;
} record[1000];
//比较函数,用于sort()
bool cmp1(const node& a, const node& b)
{
return a.starttime < b.starttime;
}
bool cmp2(const node& a, const node& b)
{
return a.endtime > b.endtime;
}
int main()
{
int n, m;
int h, mi, s;
// 读入总天数(测试组数)
cin >> n;
while(n--) {
// 读入记录数
cin >> m;
// 读入各个记录
for(int i=0; i<m; i++) {
scanf("%s %d:%d:%d", record[i].name, &h, &mi, &s);
record[i].starttime = s + mi * 60 + h * 3600;
scanf("%d:%d:%d", &h, &mi, &s);
record[i].endtime = s + mi * 60 + h * 3600;
}
// 排序(按开门时间)
sort(record, record + m, cmp1);//sort()函数的用法,第二个参数不能是结尾,否则皆为不参与。比较函数可以自己写
// 输出开门人名字
cout << record[0].name << " ";
// 排序(按关门时间)
sort(record, record + m, cmp2);
cout << record[0].name << endl;
}
return 0;
}