开门人和关门人

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 12319    Accepted Submission(s): 6237

Problem Description
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签 

到、签离记录。请依据记录找出当天开门和关门的人。 
 
Input
測试输入的第一行给出记录的总天数N ( > 0 )。

以下列出了N天的记录。

每天的记录在第一行给出记录的条目数M ( > 0 ),以下是M行,每行的格式为 



证件号码 签到时间 签离时间 



当中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。

 
Output
对每一天的记录输出1行。即当天开门和关门人的证件号码。中间用1空格分隔。 

注意:在裁判的标准測试输入中,全部记录保证完整,每一个人的签到时间在签离时间之前, 

且没有多人同一时候签到或者签离的情况。 
 
Sample Input
  1. 3
  2. 1
  3. ME3021112225321 00:00:00 23:59:59
  4. 2
  5. EE301218 08:05:35 20:56:35
  6. MA301134 12:35:45 21:40:42
  7. 3
  8. CS301111 15:30:28 17:00:10
  9. SC3021234 08:00:00 11:25:25
  10. CS301133 21:45:00 21:58:40
 
Sample Output
  1. ME3021112225321 ME3021112225321
  2. EE301218 MA301134
  3. SC3021234 CS301133
 
Source
 
Recommend
JGShining   |   We have carefully selected several similar problems for you:  1228 

pid=1236" target="_blank" style="color:rgb(26,92,200); text-decoration:none">1236 1235 1237 1230 

 

Statistic | 

pid=1234" style="color:rgb(26,92,200); text-decoration:none">Submit | 

problemid=1234" style="color:rgb(26,92,200); text-decoration:none">Discuss | 

pid=1234" style="color:rgb(26,92,200); text-decoration:none">Note
这道题,就是找最開始开门的人,和最后关门的人。所以我们仅仅要两个排序即可,一个是找最早进来的人,一个找最晚离开的人。

当然这道题假设我们依照小时分钟秒排序,会非常麻烦。

所以我们能够把小时。分钟所有换算成秒来进行计算。

详细看代码:

  1. #include <stdio.h>
  2. #include <algorithm>
  3. using namespace std;
  4. struct node
  5. {
  6. char str[20];
  7. int star,end;
  8. }c[1000];
  9. bool cmp1(node x,node y)
  10. {
  11. return x.star<y.star;
  12. }
  13. bool cmp2(node x,node y)
  14. {
  15. return x.end>y.end;
  16. }
  17. int main()
  18. {
  19. int ncase,n;
  20. scanf("%d",&ncase);
  21. while(ncase--)
  22. {
  23. scanf("%d",&n);
  24. for(int i=0;i<n;i++)
  25. {
  26. int x1,x2,x3;
  27. scanf("%s %d:%d:%d",c[i].str,&x1,&x2,&x3);
  28. c[i].star=x3+x2*60+x1*3600;
  29. scanf("%d:%d:%d",&x1,&x2,&x3);
  30. c[i].end=x3+x2*60+x1*3600;
  31. }
  32. sort(c,c+n,cmp1);
  33. printf("%s ",c[0].str);
  34. sort(c,c+n,cmp2);
  35. printf("%s\n",c[0].str);
  36. }
  37. return 0;
  38. }

hdu1234 开门人和关门人 (等价转换)的更多相关文章

  1. HDUOJ----1234 开门人和关门人(浙江大学考研题)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  2. HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  3. HDU 1234 开门人和关门人 (模拟)

    题目链接 Problem Description 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签  到.签离记录,请根据记录找出当天开门和关门的人.    Input ...

  4. 九度OJ 1013:开门人和关门人 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5052 解决:2563 题目描述:     每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请 ...

  5. 开门人和关门人(结构体+sort)

    每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人.    Input 测试输入的第一行给出记录的总天数N ( > ...

  6. 题目1013:开门人和关门人(结构体自定义cmp排序)

    题目链接:http://ac.jobdu.com/problem.php?pid=1013 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  7. 杭电OJ(HDU)-ACMSteps-Chapter Three-《FatMouse&#39; Trade》《今年暑假不AC》《排名》《开门人和关门人》

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2Fpc2luaV92Yw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  8. hdoj 1234 开门人和关门人

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) #include ...

  9. 九度OJ 1013 开门人和关门人

    #include <iostream> #include <string.h> #include <sstream> #include <math.h> ...

随机推荐

  1. Apache Bench测试

    - 压力测试神器 Siege - Locust Web测压工具python开源 - 介绍: ab是apachebench命令的缩写. ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某 ...

  2. 我照着NancyFx官网的demo来做为什么会有错误呢????

    我照着NancyFx官网的demo来做为什么会有错误呢???? >> csharp这个答案描述的挺清楚的:http://www.goodpm.net/postreply/csharp/10 ...

  3. 添加本地 yum源

    添加本地 yum源 yum-updatesd.conf yum的主配置文件   [root@zhou ~]# cd /etc/yum.repos.d/ [root@zhou yum.repos.d]# ...

  4. 对OC中property的一点理解

    最近在看即将要加入的项目的代码,看到一个protocol里包含着几个property.之前没有写过类似的代码,看到这里的时候,突然疑惑了一下,发现自己对property的理解好像有点模糊.所以回家后又 ...

  5. DNA Sequence POJ - 2778 AC 自动机 矩阵乘法

    定义重载运算的时候一定要将矩阵初始化,因为这个调了一上午...... Code: #include<cstdio> #include<algorithm> #include&l ...

  6. Python内存分配器(如何产生一个对象的过程)

    目录 内存分配器 Python分配器分层 第零层--通用的基础分配器 第一层--低级内存分配器 内存结构 arena pool new arena usable_arenas和unused_arena ...

  7. parted---磁盘分区

    parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小.作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型, ...

  8. YOLOv3学习笔记

    Darknet/Yolo官网:https://pjreddie.com/darknet/yolo/ GitHub程序:https://github.com/AlexeyAB/darknet 关于程序程 ...

  9. 一 SSH 无密码登陆 & Linux防火墙 & SELinux关闭

    如果系统环境崩溃.   调用/usr/bin/vim /etc/profile   SHH无密码登陆 所有要做得节点上运行   修改 host name vi /etc/sysconfig/netwo ...

  10. ArcGIS api for javascript——渲染-计算相等间隔分级

    描述 本例展示了如何配置分级渲染使用一个相等间隔分类.在这个分类类型中,断点被设置为相等的距离. 可以手工添加相等距离的断点:然而,如果数据被修改了,那些断点就会是不合理的.本例自动地计算断点,因此相 ...