模拟题。仔细一些即可。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. #include<algorithm>
  5. #include<map>
  6. #include<queue>
  7. #include<cstring>
  8. #include<stack>
  9. #include<vector>
  10. #include<iostream>
  11. using namespace std;
  12.  
  13. int n,m;
  14. struct Info
  15. {
  16. string id;
  17. int time,f;
  18. int quary;
  19. }tmp[+],s[+];
  20.  
  21. string ans[+];
  22.  
  23. struct SJ
  24. {
  25. string id;
  26. int time;
  27. }sj[+];
  28.  
  29. bool cmp(const Info&a,const Info&b)
  30. {
  31. if(a.id==b.id) return a.time<b.time;
  32. return a.id<b.id;
  33. }
  34.  
  35. bool cmp2(const Info&a,const Info&b)
  36. {
  37. if(a.time==b.time) return a.quary<b.quary;
  38. return a.time<b.time;
  39. }
  40.  
  41. int main()
  42. {
  43. scanf("%d%d",&n,&m);
  44. for(int i=;i<=n;i++)
  45. {
  46. cin>>tmp[i].id;
  47. int hh,mm,ss; scanf("%d:%d:%d",&hh,&mm,&ss);
  48. tmp[i].time=hh**+mm*+ss;
  49. char op[]; scanf("%s",op);
  50. if(op[]=='i') tmp[i].f=;
  51. else tmp[i].f=;
  52. tmp[i].quary=;
  53. }
  54.  
  55. sort(tmp+,tmp++n,cmp);
  56.  
  57. int sz=,p=;
  58. while()
  59. {
  60. if(p>n) break;
  61. if(tmp[p].f==)
  62. {
  63. if(tmp[p+].f==&&tmp[p+].id==tmp[p].id)
  64. {
  65. s[sz++]=tmp[p];
  66. s[sz++]=tmp[p+];
  67. p=p+;
  68. }
  69. else p++;
  70. }
  71. else p++;
  72. }
  73.  
  74. int r=;
  75. sj[r].id=s[].id;
  76. sj[r].time=s[].time-s[].time;
  77. for(int i=;i<sz;i=i+)
  78. {
  79. if(s[i].id==s[i-].id)
  80. {
  81. sj[r].time=sj[r].time+s[i+].time-s[i].time;
  82. }
  83. else
  84. {
  85. r++;
  86. sj[r].id=s[i].id;
  87. sj[r].time=s[i+].time-s[i].time;
  88. }
  89. }
  90. r++;
  91.  
  92. int Max=,u=;
  93. for(int i=;i<r;i++) Max=max(Max,sj[i].time);
  94. for(int i=;i<r;i++)
  95. if(sj[i].time==Max)
  96. ans[u++]=sj[i].id;
  97. sort(ans,ans+u);
  98.  
  99. for(int i=;i<m;i++)
  100. {
  101. int hh,mm,ss; scanf("%d:%d:%d",&hh,&mm,&ss);
  102. s[sz].quary=;
  103. s[sz++].time=hh**+mm*+ss;
  104. }
  105.  
  106. sort(s,s+sz,cmp2);
  107.  
  108. int num=;
  109. for(int i=;i<sz;i++)
  110. {
  111. if(s[i].quary==)
  112. {
  113. printf("%d\n",num);
  114. }
  115. else {
  116. if(s[i].f==) num++;
  117. else num--;
  118. }
  119. }
  120.  
  121. sort(ans,ans+u);
  122. for(int i=;i<u;i++)
  123. {
  124. cout<<ans[i];
  125. printf(" ");
  126. }
  127.  
  128. int hh,mm,ss;
  129. hh=Max/; Max=Max-hh*;
  130. mm=Max/; Max=Max-mm*;
  131. ss=Max;
  132.  
  133. printf("%02d:%02d:%02d\n",hh,mm,ss);
  134.  
  135. return ;
  136. }

PAT (Advanced Level) 1095. Cars on Campus (30)的更多相关文章

  1. 【PAT甲级】1095 Cars on Campus (30 分)

    题意:输入两个正整数N和K(N<=1e4,K<=8e4),接着输入N行数据每行包括三个字符串表示车牌号,当前时间,进入或离开的状态.接着输入K次询问,输出当下停留在学校里的车辆数量.最后一 ...

  2. PAT (Advanced Level) Practise - 1095. Cars on Campus (30)

    http://www.patest.cn/contests/pat-a-practise/1095 Zhejiang University has 6 campuses and a lot of ga ...

  3. PAT甲题题解-1095. Cars on Campus(30)-(map+树状数组,或者模拟)

    题意:给出n个车辆进出校园的记录,以及k个时间点,让你回答每个时间点校园内的车辆数,最后输出在校园内停留的总时间最长的车牌号和停留时间,如果不止一个,车牌号按字典序输出. 几个注意点: 1.如果一个车 ...

  4. 1095. Cars on Campus (30)

    Zhejiang University has 6 campuses and a lot of gates. From each gate we can collect the in/out time ...

  5. 1095 Cars on Campus (30)(30 分)

    Zhejiang University has 6 campuses and a lot of gates. From each gate we can collect the in/out time ...

  6. 【PAT Advanced Level】1004. Counting Leaves (30)

    利用广度优先搜索,找出每层的叶子节点的个数. #include <iostream> #include <vector> #include <queue> #inc ...

  7. PAT (Advanced Level) 1076. Forwards on Weibo (30)

    最短路. 每次询问的点当做起点,然后算一下点到其余点的最短路.然后统计一下最短路小于等于L的点有几个. #include<cstdio> #include<cstring> # ...

  8. PAT (Advanced Level) 1068. Find More Coins (30)

    01背包路径输出. 保证字典序最小:从大到小做背包. #include<cstdio> #include<cstring> #include<cmath> #inc ...

  9. PAT (Advanced Level) 1045. Favorite Color Stripe (30)

    最长公共子序列变形. #include<iostream> #include<cstring> #include<cmath> #include<algori ...

随机推荐

  1. C# 调用C++ DLL 的类型转换

    //C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试 //c++:HANDLE(void *) ---- c#:System.IntPtr //c++:Byt ...

  2. iOS SDWEBImage和collectionView的组合,以及collectionView的随意间距设置

    转载自:http://www.cnblogs.com/tmf-4838/p/5361271.html #import "ViewController.h" #import < ...

  3. 3g 上网卡使用

    控制面板\网络和 Internet\网络连接每个USB孔都会分配网路名 --cisco vpn 连接问题解决 启动(以管理员身份运行) sc stop SharedAccess ---完美解决win7 ...

  4. treecnt

    treecnt  ﹡    LH (命题人)   基准时间限制:1 秒 空间限制:131072 KB 分值: 40 给定一棵n个节点的树,从1到n标号.选择k个点,你需要选择一些边使得这k个点通过选择 ...

  5. winsock编程WSAEventSelect模型

    winsock编程WSAEventSelect模型 WSAEventSelect模型和WSAAsyncSelec模型类似,都是用调用WSAXXXXXSelec函数将socket和事件关联并注册到系统, ...

  6. span设置宽和高当没有内容的时候也可以撑开

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. position:fixed 居中问题

    设置Css属性position:fixed后如何使这个盒子居中呢?其实也很简单: 就是需要设置给这个div盒子设置属性: left:0; right:0; margin:0 auto; ******* ...

  8. 将GridView导入到Excel

    前几天做项目需要用到将GridView中的数据导入到Excel,原以为很简单,上网搜了一下资料,果然方法不少,于是就采用了一个: private void GridViewToExcel() { Re ...

  9. hdu_5793_A Boring Question(打表找规律)

    题目链接:hdu_5793_A Boring Question 题意: 自己看吧,说不清楚了. 题解: 打表找规律 #include<cstdio> typedef long long l ...

  10. nefu 446 今年暑假不AC(贪心)

    Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会 ...