题目:小猿同学报了n门课,每门课有一个开始时间和结束时间。小猿同一时间内可以学多门课,小猿可以一心多用,即同时学习好几门课,请问小猿最多需要一心几用?
输入第1行,为:4,代表有几门课
第2行,为第1门课的起始和终止时间:1 5
第3行,为第2门课的起始和终止时间:1 2
第4行,为第3门课的起始和终止时间:2 4
第5行,为第4门课的起始和终止时间:4 5
输出:2,即最多需要同时学习两门课
代码:
#include <iostream>
#include <unordered_map>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
unordered_map<int, int> imap;
for (int i = 0; i < n; i++)
{
int start_time, end_time;
cin >> start_time >> end_time;
for (int i = start_time; i <end_time; i++)//每个时刻,需要学习的课程数
imap[i]++;
}
int ret = 0;
for (auto it : imap)//遍历找出最大值
ret = max(ret, it.second);
cout << ret << endl;
return 0;
}