安排车辆
题目内容:
有一家出租车公司,通过网络预约安排出租。现收到M个预约单,希望用车时间区间是(s1,f1),(s2,f2),…,(sM,fM).
问最少需要准备几辆车才能完成出租。提示:车辆归还后,下一个客户才可以使用。
输入描述
第一行是M,随后M行是预约的时间区间
输出描述
最少需要的车的台数
输入样例
4
1,5
2,7
3,6
8,10
输出样例
3
第一反应是想是不是有优先级, 或者将车辆一个接一个进行连接, 但, a到b用车将这个时间段内用车数量加1, 最终取时间段内某一时刻用车量最大的数
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<queue>
#include<set>
#include<map>
#include<string>
#include<vector>
#include<stack>
using namespace std;
typedef long long ll;
int num[1000000];
int main()
{
int n;
cin >> n;
int mm = -1;
for (int i = 0; i < n; i++)
{
int a, b;
char c;
cin >> a >> c >> b;
mm = max(mm, b);
for (int j = a; j <= b; j++)
num[j]++;
}
int ans = -1;
for (int i = 0; i <= mm; i++)
ans = max(ans, num[i]);
cout << ans;
}