题目
思路
排序题,输入完后,分别按照进入时间从小到大排序,按照出去时间从大到小,然后输出两个首元素。
代码
using namespace std;
const int maxn = 1010;
struct node {
string id;
int st;
int ed;
}no[maxn];
bool cmp1(node a, node b) {
return a.st < b.st;
}
bool cmp2(node a, node b) {
return a.ed > b.ed;
}
int main() {
int n, h, m, s;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
cin >> no[i].id;
scanf("%d:%d:%d ", &h, &m, &s);
no[i].st = h * 3600 + m * 60 + s;
scanf("%d:%d:%d", &h, &m, &s);
no[i].ed = h * 3600 + m * 60 + s;
}
sort(no, no + n, cmp1);
cout << no[0].id << " ";
sort(no, no + n, cmp2);
cout << no[0].id << endl;
return 0;
}