模拟题。仔细一些即可。

#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. tableview选择的时候不要cell的高亮显示样式

    1.若用方法: //-(BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)ind ...

  2. AVFoundation下的视频分帧处理

    // // ViewController.m // VideoFrame // // Created by wiseman on 16/1/27. // Copyright (c) 2016年 wis ...

  3. C++中##(两个井号)和#(一个井号)用法

    C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关 于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化 ...

  4. iOS 视图控制器生命周期

    1.init: 2.viewDidLoad: 3.viewWillAppear: 4.viewDidAppear: 5.viewWillDisappear; 6.viewDidDisappear

  5. Centos6.6升级python版本

    centos原生python为2.6.6,可以通过下面的命令查看 #python -V Python 注:在安装新版本前,请先安装zlib\openssl组件,如果你确认你用不到这个,也可以不装 需要 ...

  6. Servie之前台Service

    public class MyService extends Service { public static final String TAG = "MyService"; pri ...

  7. VBS基础篇 - 对象(6) - Folder对象

    VBS基础篇 - 对象(6) - Folder对象   描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的G ...

  8. json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)

    调用接口,无非也就是打开链接 读取流 将结果以流的形式输出 将查询结果以json返回,无非就是将查询到的结果转换成jsonObject ================================ ...

  9. 自动加载U盘

    编辑/etc/fstab 比如想在开机的时候将/dev/sda1安装在/mnt 可以在/etc/fstab中加入一行 /dev/sda1   /mnt    ext3    defaults    0 ...

  10. 15.找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    package com.bao; public class Erweim { public static void main(String[] args) { int[][]a={{3,2,6},{6 ...