提交时间:2024-01-26 16:03:42

运行 ID: 129059

#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int NR=100010; int n,p,x[NR],t[NR]; bool check(int d) { int i,s=0,cnt=0; for(i=1;i<=n;i++) if(x[i]-x[s]>d) { s=i; cnt++; } if(cnt<p) return false; return true; } int main() { int i,left=1,right,ans=2e9; cin>>n>>p; for(i=1;i<=n;i++) cin>>x[i]; sort(x+1,x+n+1); right=x[n]; while(left<=right) { int mid=(left+right)/2; if(check(mid)==true) { ans=min(ans,mid); right=mid-1; } else left=mid+1; } cout<<ans<<endl; return 0; cout<<"KKKKK:"; }