题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1234
心得:
时间换算成秒比较大小。使用结构体,memcpy内存拷贝,sscanf分割字符串。
代码:
#include <iostream>
using namespace std;
typedef struct {char ID[20];int s0;int s1;} Data;
int main(){
int m,n,i,h0,h1,m0,m1,s0,s1;
char id[20];
char t0[20],t1[20];
Data D0,D1;
cin>>m;
while(m--){
cin>>n;
for(i=0;i<n;i++){
cin>>id>>t0>>t1;
sscanf(t0,"%d:%d:%d",&h0,&m0,&s0);
sscanf(t1,"%d:%d:%d",&h1,&m1,&s1);
s0=h0*3600+m0*60+s0; s1=h1*3600+m1*60+s1;
if(!i){
memcpy(D0.ID,id,sizeof(id));
D0.s0=s0; D0.s1=s1;
memcpy(&D1,&D0,sizeof(D0));
}
else{
if(s0<D0.s0){
memcpy(D0.ID,id,sizeof(id));
D0.s0=s0; D0.s1=s1;
}
if(s1>D1.s1){
memcpy(D1.ID,id,sizeof(id));
D1.s0=s0; D1.s1=s1;
}
}
}
cout<<D0.ID<<" "<<D1.ID<<endl;
}
return 0;
}