1 条题解
-
1
C++ :
#include <bits/stdc++.h> using namespace std; int a[1000010]; int n,c,t; bool check(int x){ int s=0; int k=a[1]; for(int i=2;i<=n;i++) { if(a[i]-k<x)s++; else k=a[i]; if(s>t)return false; } return true; } int main(){ cin>>n>>c; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); t=n-c; int left=1; int right=a[n]-a[1]; while(left+1<right){ int mid=(left+right)/2; if(check(mid))left=mid; else right=mid; } if(check(right))cout<<right<<endl; else cout<<left<<endl; return 0; }
- 1
信息
- ID
- 757
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 42
- 已通过
- 24
- 上传者