提交时间:2026-03-29 16:31:15

运行 ID: 15728

#include<bits/stdc++.h> using namespace std; int n,c,a[500010]; int check(int mid){ int p=a[0],cnt=1; for(int i=1;i<n;i++){ if(a[i]-p>=mid){ cnt++; p=a[i]; } } return cnt; } int main() { cin>>n>>c; for (int i = 0;i<n;i++) { cin>>a[i]; } sort(a,a+n); int left=1,right=a[n-1]-a[0]; while(left<=right){ int mid=left+(right-left)/2; if(check(mid)>=c){ left=mid+1; }else{ right=mid-1; } } cout<<right; return 0; }