PAT a1095题解
来源:互联网 发布:vmware for ubuntu 64 编辑:程序博客网 时间:2024/06/08 14:15
#include <cstdio>#include <cstring>#include <string>#include <map>#include <algorithm>using namespace std;const int maxn = 10010;struct Car{char id[8];int time;char status[4];}all[maxn], valid[maxn];int num = 0;map<string, int> parkTime;int timeToInt(int hh, int mm, int ss){return hh * 3600 + mm * 60 + ss;}bool cmpByIdAndTime(Car a, Car b){if(strcmp(a.id, b.id)) return strcmp(a.id, b.id) < 0;else return a.time < b.time; }bool cmpByTime(Car a, Car b){return a.time < b.time;}int main(){int n, k, hh, mm, ss;scanf("%d%d", &n, &k);for(int i = 0; i < n; i++){scanf("%s %d:%d:%d %s", all[i].id, &hh, &mm, &ss, all[i].status);all[i].time = timeToInt(hh, mm, ss);}sort(all, all + n, cmpByIdAndTime);int maxTime = -1;for(int i = 0; i < n - 1; i++){if(!strcmp(all[i].id, all[i + 1].id) && !strcmp(all[i].status, "in") && !strcmp(all[i + 1].status, "out")){valid[num++] = all[i];valid[num++] = all[i + 1];int inTime = all[i + 1].time - all[i].time;if(parkTime.count(all[i].id) == 0){parkTime[all[i].id] = 0;}parkTime[all[i].id] += inTime;maxTime = max(maxTime, parkTime[all[i].id]);}}sort(valid, valid + num, cmpByTime);int now = 0, numCar = 0;for(int i = 0; i < k; i++){scanf("%d:%d:%d", &hh, &mm, &ss);int time = timeToInt(hh, mm, ss);while(now < num && valid[now].time <= time){if(!strcmp(valid[now].status, "in")) numCar++;else numCar--;now++;}printf("%d\n", numCar);}map<string , int>::iterator it;for(it = parkTime.begin(); it != parkTime.end(); it++){if(it -> second == maxTime){printf("%s ", it -> first.c_str());}} printf("%02d:%02d:%02d\n", maxTime / 3600, maxTime % 3600 / 60, maxTime % 60);return 0;}
阅读全文
1 0
- PAT a1095题解
- PAT A1095. Cars on Campus (30)
- PAT:A1095. Cars on Campus (0/30)
- 信息处理--PAT.A1095.Cars on Campus
- PAT 1001-1010 题解
- PAT 1011-1020 题解
- PAT 1021-1030 题解
- PAT 1031-1040 题解
- PAT 1041-1050 题解
- PAT 1051-1060 题解
- PAT(basic level)题解
- PAT乙级题解
- PAT题解目录
- PAT甲级题解目录
- PAT乙级题解目录
- PAT甲级1001题解
- PAT甲级1002题解
- PAT b1001-1005题解
- C++每日一课(十九)
- PAT a1094题解
- 计蒜之道2017F-腾讯消消乐(状压dp)
- 基于Zookeeper的路由和负载均衡实现思想
- Java系列(二)之面向对象
- PAT a1095题解
- 错排公式 + 组合数学取mod板子
- ffmpeg编译 | 在苹果设备上玩转多媒体的第一步
- 社区club-web的那2个小项目(PC端和移动端)-vue架构梳理
- 1.odoo环境搭建
- PAT a1096题解
- 晓光笔记—android简介
- 精通Excel数据统计与分析
- PAT a1097题解