模拟题。仔细一些即可。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<map>
#include<queue>
#include<cstring>
#include<stack>
#include<vector>
#include<iostream>
using namespace std; int n,m;
struct Info
{
string id;
int time,f;
int quary;
}tmp[+],s[+]; string ans[+]; struct SJ
{
string id;
int time;
}sj[+]; bool cmp(const Info&a,const Info&b)
{
if(a.id==b.id) return a.time<b.time;
return a.id<b.id;
} bool cmp2(const Info&a,const Info&b)
{
if(a.time==b.time) return a.quary<b.quary;
return a.time<b.time;
} int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
cin>>tmp[i].id;
int hh,mm,ss; scanf("%d:%d:%d",&hh,&mm,&ss);
tmp[i].time=hh**+mm*+ss;
char op[]; scanf("%s",op);
if(op[]=='i') tmp[i].f=;
else tmp[i].f=;
tmp[i].quary=;
} sort(tmp+,tmp++n,cmp); int sz=,p=;
while()
{
if(p>n) break;
if(tmp[p].f==)
{
if(tmp[p+].f==&&tmp[p+].id==tmp[p].id)
{
s[sz++]=tmp[p];
s[sz++]=tmp[p+];
p=p+;
}
else p++;
}
else p++;
} int r=;
sj[r].id=s[].id;
sj[r].time=s[].time-s[].time;
for(int i=;i<sz;i=i+)
{
if(s[i].id==s[i-].id)
{
sj[r].time=sj[r].time+s[i+].time-s[i].time;
}
else
{
r++;
sj[r].id=s[i].id;
sj[r].time=s[i+].time-s[i].time;
}
}
r++; int Max=,u=;
for(int i=;i<r;i++) Max=max(Max,sj[i].time);
for(int i=;i<r;i++)
if(sj[i].time==Max)
ans[u++]=sj[i].id;
sort(ans,ans+u); for(int i=;i<m;i++)
{
int hh,mm,ss; scanf("%d:%d:%d",&hh,&mm,&ss);
s[sz].quary=;
s[sz++].time=hh**+mm*+ss;
} sort(s,s+sz,cmp2); int num=;
for(int i=;i<sz;i++)
{
if(s[i].quary==)
{
printf("%d\n",num);
}
else {
if(s[i].f==) num++;
else num--;
}
} sort(ans,ans+u);
for(int i=;i<u;i++)
{
cout<<ans[i];
printf(" ");
} int hh,mm,ss;
hh=Max/; Max=Max-hh*;
mm=Max/; Max=Max-mm*;
ss=Max; printf("%02d:%02d:%02d\n",hh,mm,ss); return ;
}

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. protected-broadcast的作用

    protected-broadcast(暂时从网上搜到这么多,也不知对错,先留着) “保护性广播”,在一些AndroidManifest.xml中的一级标记<protected-broadcas ...

  2. Quicksum

    Quicksum Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Subm ...

  3. C# 二维数组和集合

    本次课我主要学习了二维数组和集合的部分内容. 在二维数组的部分中,我主要学习了二维数组的定义方法:int [,] array=new int [4,2];做了一个小练习:用二维数组打印自己的姓氏. s ...

  4. 1-10w之间的整数中有几个完全平方数

    #include "stdio.h" #include<math.h> void main() { ,x,y; printf("1-10w之间的整数中有以下几 ...

  5. [NPOI2.0] 使用NPOI读取和导出Excel文件

    先来说下一直使用的 Microsoft.Office.Interop.Excel ,在系统正式使用时遇到的问题 1:Excel读取数据BUG 由于使用Microsoft.Office.Interop. ...

  6. 使用Java7提供的Fork/Join框架

    http://blog.csdn.net/a352193394/article/details/39872923 使用Java7提供的Fork/Join框架 2014-10-07 23:55 4818 ...

  7. 缩放系列(一):一个很好的bitmap手势缩放demo(多点触控)

    认识事物都遵循由简入繁的顺序,下面我们想实现一个控件或者一个布局的缩放,先从简单的例子开始吧,我们就以缩放图片做入门. 效果图: 一.要求 利用ScaleGestureDetector这个类实现图片缩 ...

  8. win10快捷键大全

    win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢• 贴靠窗口:Win +左/右> Win ...

  9. linux 进程监控和自动重启的简单实现(转)

    目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重 ...

  10. for in 的各种坑

    for in方法用来遍历数组或者对象的显性属性,就是说我们自己定义的属性都是可以遍历的,而对象固有的属性,比如Object.prototype.toString是遍历不出来的. for in方法简洁好 ...