提交时间:2024-01-25 11:20:59
运行 ID: 127997
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int A[N]; int n,c,a; bool check(int x){ int num=0; int l=A[1]; for(int i=2;i<=n;i++){ if(A[i]-l<x){ num++; } else{ l=A[i]; } if(num>a){ return false; } } return true; } int main(){ scanf("%d%d",&n,&c); for(int i=1;i<=n;i++){ scanf("%d",&A[i]); } sort(A+1,A+n+1); a=n-c; int l=1; int r=A[n]-A[1]; while(l+1<r){ int mid=(l+r)/2; if(check(mid)){ l=mid; } else{ r=mid; } } if(check(r)){ printf("%d\n",r); } else{ printf("%d\n",l); } return 0; }