#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>
using namespace std;
#define MAXN 17
struct Time{
string name;
int begin;
int end;
}data[MAXN];
bool cmpb(const Time &a,const Time &b){
return a.begin<b.begin;
}
bool cmpe(const Time &a,const Time &b){
return a.end>b.end;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
string name;
cin>>name;
int a1,a2,a3,b1,b2,b3;
scanf("%d:%d:%d %d:%d:%d",&a1,&a2,&a3,&b1,&b2,&b3);
data[i].name=name;
data[i].begin=a1*3600+a2*60+a3;
data[i].end=b1*3600+b2*60+b3;
}
sort(data,data+n,cmpb);
cout<<data[0].name<<" ";
sort(data,data+n,cmpe);
cout<<data[0].name<<endl;
return 0;
}
本文介绍了一个使用C++编写的程序,该程序实现了读取一系列时间段(包括名称、开始时间和结束时间),并根据这些时间段的开始时间进行升序排序,然后输出最早开始的时间段名称;接着根据结束时间进行降序排序,并输出最晚结束的时间段名称。
350

被折叠的 条评论
为什么被折叠?



