60分求助
查看原帖
60分求助
1056745
wen114248050楼主2023/8/10 10:25
#include<bits/stdc++.h>
using namespace std;
long long m,n,a[10000005],l;
int check(int p)
{
    int x=0,cows=1;     
    for(int i=2;i<=n;i++){
        if(x<p) x+=a[i]-a[i-1];
        if(x>=p){
            x=0;
            cows++;
        }
    }
    return cows;
}

int main() {

cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
a[n+1]=l;
int l=0,r=1e9+1;
while(l+1<r)
{
    int mid=(l+r)/2;
    if(check(mid)>=m)l=mid+1;
    else r=mid-1;
}
cout<<l;
return 0;

}

2023/8/10 10:25
加载中...