1 solutions
-
1
#include<bits/stdc++.h> using namespace std; int a[10005],n,k,ans,l,r=-1,mid; bool pd(int mid){ int sum=1,maxr=a[1]+mid2; for(int i=2;i<=n;i++){ if(a[i]<=maxr)continue; sum++; maxr=a[i]+2mid; } return sum<=k; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i]; r=max(r,a[i]); } sort(a+1,a+1+n); while(l<=r){ mid=(l+r)/2; if(pd(mid)==1){ r=mid-1;ans=mid; } else l=mid+1; } cout<<ans; return 0; }
- 1
Information
- ID
- 408
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- (None)
- # Submissions
- 25
- Accepted
- 10
- Uploaded By