PAT (Advanced Level) 1095. Cars on Campus (30)
模拟题。仔细一些即可。
#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)的更多相关文章
- 【PAT甲级】1095 Cars on Campus (30 分)
题意:输入两个正整数N和K(N<=1e4,K<=8e4),接着输入N行数据每行包括三个字符串表示车牌号,当前时间,进入或离开的状态.接着输入K次询问,输出当下停留在学校里的车辆数量.最后一 ...
- 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 ...
- PAT甲题题解-1095. Cars on Campus(30)-(map+树状数组,或者模拟)
题意:给出n个车辆进出校园的记录,以及k个时间点,让你回答每个时间点校园内的车辆数,最后输出在校园内停留的总时间最长的车牌号和停留时间,如果不止一个,车牌号按字典序输出. 几个注意点: 1.如果一个车 ...
- 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 ...
- 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 ...
- 【PAT Advanced Level】1004. Counting Leaves (30)
利用广度优先搜索,找出每层的叶子节点的个数. #include <iostream> #include <vector> #include <queue> #inc ...
- PAT (Advanced Level) 1076. Forwards on Weibo (30)
最短路. 每次询问的点当做起点,然后算一下点到其余点的最短路.然后统计一下最短路小于等于L的点有几个. #include<cstdio> #include<cstring> # ...
- PAT (Advanced Level) 1068. Find More Coins (30)
01背包路径输出. 保证字典序最小:从大到小做背包. #include<cstdio> #include<cstring> #include<cmath> #inc ...
- PAT (Advanced Level) 1045. Favorite Color Stripe (30)
最长公共子序列变形. #include<iostream> #include<cstring> #include<cmath> #include<algori ...
随机推荐
- tableview选择的时候不要cell的高亮显示样式
1.若用方法: //-(BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)ind ...
- AVFoundation下的视频分帧处理
// // ViewController.m // VideoFrame // // Created by wiseman on 16/1/27. // Copyright (c) 2016年 wis ...
- C++中##(两个井号)和#(一个井号)用法
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关 于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化 ...
- iOS 视图控制器生命周期
1.init: 2.viewDidLoad: 3.viewWillAppear: 4.viewDidAppear: 5.viewWillDisappear; 6.viewDidDisappear
- Centos6.6升级python版本
centos原生python为2.6.6,可以通过下面的命令查看 #python -V Python 注:在安装新版本前,请先安装zlib\openssl组件,如果你确认你用不到这个,也可以不装 需要 ...
- Servie之前台Service
public class MyService extends Service { public static final String TAG = "MyService"; pri ...
- VBS基础篇 - 对象(6) - Folder对象
VBS基础篇 - 对象(6) - Folder对象 描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的G ...
- json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)
调用接口,无非也就是打开链接 读取流 将结果以流的形式输出 将查询结果以json返回,无非就是将查询到的结果转换成jsonObject ================================ ...
- 自动加载U盘
编辑/etc/fstab 比如想在开机的时候将/dev/sda1安装在/mnt 可以在/etc/fstab中加入一行 /dev/sda1 /mnt ext3 defaults 0 ...
- 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 ...