1006. Sign In and Sign Out (25)
#include <stdio.h>
#include <string.h>
class A
{
public:
enum{timelen=9,idlen=16};
void init();
void run();
private:
struct crecord
{
char id[idlen];
char time1[timelen];
char time2[timelen];
crecord *next;
};
void sort();
int timetoint(char *stime);
crecord *rd;
int m;
};
void A::init()
{
scanf("%d",&m);
rd=NULL;
crecord *tmp;
for(int i=0;i<m;i++)
{
tmp=new crecord;
scanf("%s%s%s",tmp->id,tmp->time1,tmp->time2);
tmp->next=rd;
rd=tmp;
}
}
void A::run()
{
if(rd==NULL) return;
crecord *min1=rd,*max2=rd,*tmp=rd->next;
while(tmp!=NULL)
{
if(strcmp(tmp->time1,min1->time1)<0)
{
min1=tmp;
}
if(strcmp(tmp->time2,max2->time2)>0)
{
max2=tmp;
}
tmp=tmp->next;
}
printf("%s %s",min1->id,max2->id);
}
int main()
{
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
A *a=new A;
a->init();
a->run();
return 0;
}