1. #include <iostream>
  2. #include <string.h>
  3. #include <sstream>
  4. #include <math.h>
  5. #include <stdio.h>
  6. #include <algorithm>
  7. using namespace std;
  8. bool changed = false;
  9. struct Node
  10. {
  11. //int test;
  12. string name;
  13. string startTime;
  14. string endTime;
  15. /*bool operator <(const Node other) const
  16. {
  17. if(test < other.test)
  18. return true;
  19. else
  20. return false;
  21. }*///ok
  22. bool operator <(const Node other) const
  23. {
  24. if(changed == false)
  25. {
  26. if(startTime.compare(other.startTime) < )
  27. {
  28. return true;
  29. }
  30. else
  31. return false;
  32. }
  33. else
  34. {
  35. if(endTime.compare(other.endTime) < )
  36. {
  37. return true;
  38. }
  39. else
  40. return false;
  41. }
  42.  
  43. }
  44.  
  45. };
  46. int main()
  47. {
  48. Node arr[];
  49. int n = ;
  50. cin>>n;
  51. while(n>)
  52. {
  53. int m;
  54. cin>>m;
  55. int i = ;
  56. for(;i<m;i++)
  57. {
  58. cin>>arr[i].name>>arr[i].startTime>>arr[i].endTime;
  59. }
  60. changed = false;
  61. sort(arr,arr+m);
  62. cout<<arr[].name<<" ";
  63. changed = true;
  64. sort(arr,arr+m);
  65. cout<<arr[m-].name;
  66. if(n!=)
  67. cout<<endl;
  68.  
  69. n--;
  70.  
  71. }
  72. return ;
  73. }
题目描述:
    每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。
输入:

测试输入的第一行给出记录的总天数N ( N> 0 ),下面列出了N天的记录。 
    每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为

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

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

输出:

对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。 
    注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况。

样例输入:
  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
样例输出:
  1. ME3021112225321 ME3021112225321
  2. EE301218 MA301134
  3. SC3021234 CS301133
  4.  
  5. 解题思路:
      存储每个人的证件号,进入时间,退出时间,可考虑结构体;
      涉及到字符串比较,可用string类自带的str.compare(string)函数,核心在于重写<运算符,先对进入时间进行排序,找出最先进入的人,然后转换状态
      再对退出时间进行排序,找出最后离开的人

九度OJ 1013 开门人和关门人的更多相关文章

  1. hdoj 1234 开门人和关门人

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

  2. HDU 1234:开门人和关门人

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

  3. I题 hdu 1234 开门人和关门人

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1234 开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)   ...

  4. 【ACM】hdu_1234_开门人和关门人_201307300845

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

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

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

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

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

  7. 6C - 开门人和关门人

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

  8. A - 开门人和关门人(sort+结构体)

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

  9. HDU 1234 开门人和关门人

    #include <string> #include <algorithm> #include <iostream> using namespace std; st ...

随机推荐

  1. NYOJ--42--dfs--一笔画问题

    /* Name: NYOJ--42--一笔画问题 Author: shen_渊 Date: 18/04/17 15:22 Description: 这个题用并查集做,更好.在练搜索,试试手 本来用的v ...

  2. NYOJ--353--bfs+优先队列--3D dungeon

    /* Name: NYOJ--3533D dungeon Author: shen_渊 Date: 15/04/17 15:10 Description: bfs()+优先队列,队列也能做,需要开一个 ...

  3. C#多线程的用法1-简单示例

    写在前面:阅读本系列文章即表示你已经知道什么是线程等理论知识,现在正想了解如何正确的使用线程进行编程工作. /// <summary> /// 单线程工作示例 /// </summa ...

  4. 什么是MSF

    什么是MSF MSF,即Microsoft Solution Framework,也就是微软推荐的做软件的方法. MSF发展:大约在1994年,微软在总结了自己产品团队的开发经验和教训,以及微软咨询服 ...

  5. js对敏感词的判断

    先贴代码: //定义敏感字符 var forbiddenArray =['xx','<','>','黄色']; //定义函数 function forbiddenStr(str){ // ...

  6. php基础函数

    函数四要素:返回类型(php没有返回类型), 函数名,参数列表,函数体//php定义函数的方式  简单 例://function show(){//    echo "狗头铡伺候" ...

  7. Spring Boot 出现 in a frame because it set 'X-Frame-Options' to 'DENY'

    在spring boot项目中出现不能加载iframe 页面报一个"Refused to display 'http://......' in a frame because it set ...

  8. noi2015 day1 T2软件包管理器

    noi2015 软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软 ...

  9. Request常用方法 (总结)

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  10. Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell

    [环境配置的原因] 在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK.如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告"找不到文件&qu ...