PAT 甲级 1095 Cars on Campus

2024-06-19 16:38
文章标签 pat 甲级 1095 campus cars

本文主要是介绍PAT 甲级 1095 Cars on Campus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PAT 甲级 1095 Cars on Campus

#include <bits/stdc++.h>
using namespace std;
const int kMAXN = 10010;
struct Car
{char id[8];int time;char status[4];
} all[kMAXN], valid[kMAXN];
int valid_num = 0;
map<string, int> parkTime;
int TimeToInt(int hh, int mm, int ss)
{return hh * 3600 + mm * 60 + ss;
}bool CmpIdAndTime(const Car& a, const Car& b)
{if (strcmp(a.id, b.id))return strcmp(a.id, b.id) < 0;return a.time < b.time;
}bool CmpTime(const Car& a, const Car& b)
{return a.time < b.time;
}int main()
{
#ifdef LOCALfreopen("input.txt", "r", stdin);
#endifint n, k, hh, mm, ss;cin >> 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, CmpIdAndTime);int max_time = -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[valid_num++] = all[i];valid[valid_num++] = all[i + 1];int this_in_time   = all[i + 1].time - all[i].time;parkTime[all[i].id] += this_in_time;max_time = max(max_time, parkTime[all[i].id]);}}sort(valid, valid + valid_num, CmpTime);int now     = 0;int num_car = 0;for (int i = 0; i < k; ++i) {scanf("%d:%d:%d", &hh, &mm, &ss);int time = TimeToInt(hh, mm, ss);while (now < valid_num && valid[now].time <= time) {if (!strcmp(valid[now].status, "in"))num_car++;elsenum_car--;now++;}printf("%d\n", num_car);}for (auto itr = parkTime.begin(); itr != parkTime.end(); ++itr) {if (itr->second == max_time) {printf("%s ", itr->first.c_str());}}printf("%02d:%02d:%02d", max_time / 3600, max_time % 3600 / 60,max_time % 60);
}

这篇关于PAT 甲级 1095 Cars on Campus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075572

相关文章

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

HDU 1095(水题)

#include <iostream>using namespace std;void main(){int a,b;while(cin>>a>>b)cout<<a+b<<endl<<endl;}

1050 String Subtraction——PAT甲级

Given two strings S1​ and S2​, S=S1​−S2​ is defined to be the remaining string after taking all the characters in S2​ from S1​. Your task is simply to calculate S1​−S2​ for any given strings. However,

CodeForces - 545A Toy Cars (模拟)

【题目链接】:click here~~ 【题目大意】: 给一个n*n的矩阵,-1只在对角线出现(因为自己不能撞自己),0代表没有车在碰撞,1代表第i辆车(横坐标)被撞坏了,2代表第j辆车(纵坐标)被撞坏了,3代表两辆车都撞坏了。问哪几辆车完好无损。  代码: /* * Problem: CodeForces - 545A * Running time: 15MS *

UVA10491 - Cows and Cars(概率)

UVA10491 - Cows and Cars(概率) 题目链接 题目大意:给你n个门后面藏着牛,m个门后面藏着车,然后再给你k个提示,在你作出选择后告诉你有多少个门后面是有牛的,现在问你作出决定后,根据提示改变你的选择能够成功的概率。 解题思路:简单的概率题,题目意思懂了应该没什么问题。 代码: #include <cstdio>#include <cstring>int

1105 链表合并——PAT乙级

给定两个单链表 L1​=a1​→a2​→⋯→an−1​→an​ 和 L2​=b1​→b2​→⋯→bm−1​→bm​。如果 n≥2m,你的任务是将比较短的那个链表逆序,然后将之并入比较长的那个链表,得到一个形如 a1​→a2​→bm​→a3​→a4​→bm−1​⋯ 的结果。例如给定两个链表分别为 6→7 和 1→2→3→4→5,你应该输出 1→2→7→3→4→6→5。 输入格式: 输入首先在第一

1110 区块反转——PAT乙级

给定一个单链表 L,我们将每 K 个结点看成一个区块(链表最后若不足 K 个结点,也看成一个区块),请编写程序将 L 中所有区块的链接反转。例如:给定 L 为 1→2→3→4→5→6→7→8,K 为 3,则输出应该为 7→8→4→5→6→1→2→3。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105)、以及正整数 K (

论文笔记 A Large Contextual Dataset for Classification,Detection and Counting of Cars with Deep Learning

ECCV 2016的文章,首先建立了一个从上到下照的车辆影像数据集(即鸟瞰视角),并提出ResCeption神经网络进行训练,进一步建立residual learning with Inception-style layers,进行车辆数目的计算。该方法为车辆数目的计算的一种新方式:通过定位和密度估计方法。对于新的场景或新的目标计数也同样适用。 文章主要关注3个任务点:(1)两类的分类问题(2)