PAT甲级1006 Sign In and Sign Out (25分)
题目:
题目分析:这是一道比较简单的查找题,由于是同一天的进进出出,所以只要比较‘进’的最小时间与‘出’的最大时间即可,定义一个people结构体,算出进与出的时间并且记录他们的id,最后输出最小时间与最大时间的id即可~~~~
AC代码附上:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1010;
struct people{
string id;
int jin;
int chu;
}p[maxn];
int main(){
int n;
string s;
int temp1,temp2,temp3,temp4,temp5,temp6;
scanf("%d",&n);
for(int i=0;i<n;i++){
cin>>s;
scanf("%d:%d:%d %d:%d:%d",&temp1,&temp2,&temp3,&temp4,&temp5,&temp6);
p[i].id=s;
p[i].jin=temp1*3600+temp2*60+temp3;
p[i].chu=temp4*3600+temp5*60+temp6;
}
int min=10000000000,mink,max=-1,maxk;
for(int i=0;i<n;i++){
if(p[i].jin<min) {
min=p[i].jin;
mink=i;
}
if(p[i].chu>max) {
max=p[i].chu;
maxk=i;
}
}
cout<<p[mink].id<<" "<<p[maxk].id;
return 0;
}