http://acm.hdu.edu.cn/showproblem.php?pid=1234
题意是按登记表上的记录输出开门和关门的人,关键在于时间的比较
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<stdio.h> #include<string.h> struct node{ int h,m,s; char name[20]; }; int n,m,i,h1,m1,s1,h2,m2,s2; struct node open,close; int qian() { if(h1<open.h||(h1==open.h&&m1<open.m)||(h1==open.h&&m1==open.m&&s1<open.s)) return 1; else return 0; } int hou() { if(h2>close.h||(h2==close.h&&m2>close.m)||(h2==close.h&&m2==close.m&&s2>close.s)) return 1; else return 0; } int main() { char s[20]; scanf("%d",&n); while(n--) { scanf("%d",&m); gets(s); for(i=0;i<m;i++) { scanf("%s %d:%d:%d %d:%d:%d",s,&h1,&m1,&s1,&h2,&m2,&s2); if(i==0) { open.h=h1; open.m=m1; open.s=s1; strcpy(open.name,s); close.h=h2; close.m=m2; close.s=s2; strcpy(close.name,s); } else { if(qian()) { open.h=h1; open.m=m1; open.s=s1; strcpy(open.name,s); } if(hou()) { close.h=h2; close.m=m2; close.s=s2; strcpy(close.name,s); } } } printf("%s %s\n",open.name,close.name); } return 0; }