题意:
解法:
将时间从小到大排序,显然选择相邻一段最优,
从左开始贪心选择,当时间差>K或者人数超过C则再来一辆车.
code:
#include <bits/stdc++.h>
#define int long long
#define PI pair<int,int>
using namespace std;
const int maxm=2e6+5;
int a[maxm];
int n,c,k;
void solve(){
cin>>n>>c>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
int ans=0;
int st=-1e18;
int cnt=0;
for(int i=1;i<=n;i++){
if(a[i]>st+k||cnt+1>c){
ans++;
cnt=1;
st=a[i];
}else{
cnt++;
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(0);
solve();
return 0;
}