HDU 1234 开门人和关门人(模拟水题)
2016-04-23 23:54
260 查看
开门人和关门人
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14228 Accepted Submission(s): 7257
[align=left]Problem Description[/align]
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签
到、签离记录,请根据记录找出当天开门和关门的人。
[align=left]Input[/align]
测试输入的第一行给出记录的总天数N ( > 0 )。下面列出了N天的记录。
每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为
证件号码 签到时间 签离时间
其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。
[align=left]Output[/align]
对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。
注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,
且没有多人同时签到或者签离的情况。
[align=left]Sample Input[/align]
3 1 ME3021112225321 00:00:00 23:59:59 2 EE301218 08:05:35 20:56:35 MA301134 12:35:45 21:40:42 3 CS301111 15:30:28 17:00:10 SC3021234 08:00:00 11:25:25 CS301133 21:45:00 21:58:40
[align=left]Sample Output[/align]
ME3021112225321 ME3021112225321 EE301218 MA301134 SC3021234 CS301133
[align=left]Source[/align]
浙大计算机研究生复试上机考试-2005年
AC代码:
#include<iostream> #include<cstdlib> #include<cstdio> #include<cmath> #include<cstring> #include<string> #include<cstdlib> #include<algorithm> typedef long long LL; using namespace std; #define MAX 3600*24 int f(int h,int m,int s){ return h*3600+m*60+s; } int main() { int h1,m1,s1,num[1000][17],h2,m2,s2; int i,j,t,n,flag1,flag2; scanf("%d",&t); while(t--) { int max=0,min=MAX,sum1=0,sum2=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s %d:%d:%d %d:%d:%d",num[i],&h1,&m1,&s1,&h2,&m2,&s2); sum1=f(h1,m1,s1); if(min>=sum1) //最早签到时间 { min=sum1; flag1=i; } sum2=f(h2,m2,s2); if(max<=sum2) //最晚签离时间 { max=sum2; flag2=i; } } printf("%s %s\n",num[flag1],num[flag2]); } return 0; }
相关文章推荐
- mysqldump 用法
- 游太平记
- apache CXF web 客户端去调用服务器端
- hdu 2044 一只小蜜蜂...
- [C++]Virtual_World_1(练习)
- C语言中冒泡法、选择法、插入法三种常见排序算法分析
- 第八周作业
- Android Service
- python统计文档词频
- 第八周作业
- 初步学习ubuntu 安装LAMP
- Python3笔记-电子邮件的收发
- matlab global 不能传向量/矩阵
- ZOJ 3940 Modulo Query
- listen的blocklog
- 20145227 《Java程序设计》第8周学习总结
- Linux之trap命令
- 让eclipse像myeclipse一样自动校验xml文件是否符合dtd或xsd约束
- 一个线上JVM的CPU资源占用过高问题的排查
- PHP学习资料分享