提交时间:2026-02-04 10:48:18
运行 ID: 15461
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m,a[N],i; int check(int mid){ int s=1,pos=a[1]; for(i=1;i<=n;i++){ if(a[i]-pos>=mid){ pos=a[i]; s++; } } return s; } int main(){ cin>>n>>m; for(i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); int left=0,right=a[n],mid; while(left<=right){ mid=left+(right-left)/2; if(check(mid)>=m){ left=mid+1; }else{ right=mid-1; } } cout<<right; }