PAT刷题记录 1095 Cars on Campus (30分)

#pragma warning(disable:4996)
#include<vector>
#include<iostream>
#include<string>
#include<algorithm>
#include<map>
using namespace std;

struct record {
	string name;
	int hh, mm, ss;
	int time;   // 用second来存储总时间
	bool status;//in为1 out为0
}rec[10005];

map<string, int> park_time;

bool cmp(record a,record b) {
	if (a.name != b.name)return a.name < b.name;
	else if (a.time != b.time)return a.time < b.time;
}

//
bool cmp2(record a, record b) {
	return a.time < b.time;
}
vector<record> valid;
int n,que_num;
int main() {
	cin >> n >> que_num;
	string temp_status;
	for (int i = 0; i < n; i++) {
		cin >> rec[i].name;
		scanf("%d:%d:%d", &rec[i].hh, &rec[i].mm, &rec[i].ss);
		rec[i].time = rec[i].hh * 3600 + rec[i].mm * 60 + rec[i].ss;
		cin >> temp_status;
		if (temp_status == "in")rec[i].status = true;
		else rec[i].status = false;
	}
	sort(rec, rec + n, cmp);
	int cnt = 0;
	int maxtime = 0;
	for (int i = 1; i < n; i++) {
		if (rec[i].name == rec[i - 1].name) {
			// 成对出现 说明两者有效,并计算两者之间的parktime
			if (!rec[i].status&&rec[i - 1].status) {
				valid.push_back(rec[i-1]);
				valid.push_back(rec[i]);
				park_time[rec[i].name]+= rec[i].time - rec[i - 1].time;
				if (park_time[rec[i].name] > maxtime) {
					maxtime = park_time[rec[i].name];
				}
			}
		}
	}
	int hh, mm, ss;
	int insecond;
	sort(valid.begin(), valid.end(), cmp2);
	int size = valid.size();
	int j = 0;
	int car_cnt = 0;
	for (int i = 0; i < que_num; i++) {
		scanf("%d:%d:%d", &hh, &mm, &ss);
		insecond = hh * 3600 + mm * 60 + ss;
		for (; j < size&&valid[j].time<=insecond; j++) {
			if (valid[j].status == true)car_cnt++;
			else car_cnt--;
		}
		printf("%d\n", car_cnt);
	}
	//处理最长停车时间
	map<string,int>::iterator it;
	for (it = park_time.begin(); it != park_time.end();it++) {
		if (it->second == maxtime)printf("%s ", it->first.c_str());
	}
	printf("%02d:%02d:%02d", maxtime / 3600, (maxtime % 3600) / 60, maxtime % 60);
	system("pause");
}

 

【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值