题目描述
查看题目信息
一条铁路上有n个车站,编号为1至n,某一天,从1至n的方向有m个人乘车,每节车厢最多容纳k人,求这一天从1站到n站至少安排多少节车厢才能满足需求。(注意:到达每一站时,先上车,再下车)
输入格式
第一行为n,m,k,表示车站数,要乘车的人数,车厢容量。
接下来m行,每行两个数si和ti,表示第i位乘客的上车站和下车站。
输出格式
一个整数,最小车厢数
样例输入
7 8 4 2 5 1 3 5 7 6 7 4 6 2 6 1 7 2 3
样例输出
2
问题提示
对于100%数据,n<=200000,0<m,k<=100000, 0<si<ti<=n
代码
#include<iostream>
using namespace std;
int a[1000001],b[1000001];
int main()
{
int m,n,k,s,t;
cin>>n>>m>>k;
for(int i=1;i<=m;i++)
{
cin>>s>>t;
b[s]++;
b[t+1]--;
}
int maxs=0;
for(int i=1;i<=n;i++)
{
a[i]=a[i-1]+b[i];
maxs=max(maxs,a[i]);
}
if(maxs%k!=0)
{
cout<<(maxs/k+1);
}
else
{
cout<<maxs/k;
}
return 0;
}