提交时间:2024-01-25 09:32:19

运行 ID: 127570

#include <bits/stdc++.h> using namespace std; long long n,m;long long a[100005]; bool check(int mid){ int tmp = a[0],cnt = 1; for(int i = 1;i<n;i++){ if(a[i]-tmp>=mid) { tmp = a[i],cnt++; } } if(cnt>=m) return true; return false; } int main(){ cin>>n>>m; for(int i = 0;i<n;i++){ cin>>a[i]; } sort(a,a+n); int l = 0; int r = 1000000006; while(l<r){ int mid = (l+r+1)/2; if(check(mid)){ l = mid; } else r = mid-1; } cout<<l<<endl; return 0; }