杭电acm1234

http://acm.hdu.edu.cn/showproblem.php?pid=1234

题意是按登记表上的记录输出开门和关门的人,关键在于时间的比较

#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;
}
View Code

 

posted @ 2013-05-16 20:11  执着追求的IT小小鸟  阅读(137)  评论(0编辑  收藏  举报