2 solutions
-
1
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N]; int n,m; bool check(int x) { int last=a[1],cnt=1; for(int i=2;i<=n;i++) { if(a[i]-last>=x) { cnt++; last=a[i]; } } return cnt>m; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); int l=0,r=a[n]; while(l<r) { int mid=l+r+1>>1; if(check(mid)) l=mid; else r=mid-1; } cout<<l; return 0; }
Information
- ID
- 955
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 18
- Accepted
- 8
- Uploaded By