题目
分析
最早来的人开门,最晚来的人锁门
排序问题
利用algorithm自带的排序方法、strcmp比较字符串大小方法求解即可
代码
#include<stdio.h>
#include <algorithm>
#include<string.h>
using namespace std;
struct E{
char ID[16];
char sign_in[9];
char sign_out[9];
}buf[1000];
bool cmp1(E a,E b){
//按进入时间小的规则排序
//利用C++运算符重载直接定义小于运算符
int tmp = strcmp(a.sign_in,b.sign_in);
return tmp<0;
}
bool cmp2(E a,E b){
//按离开时间小的规则排序
//利用C++运算符重载直接定义小于运算符
int tmp = strcmp(a.sign_out,b.sign_out);
return tmp>0;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%s%s%s",buf[i].ID,buf[i].sign_in,buf[i].sign_out);
}
sort(buf,buf+n,cmp1);
printf("%s ",buf[0].ID);
sort(buf,buf+n,cmp2);
printf("%s",buf[0].ID);
}
return 0;
}