1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define MAXN 100010 int n,m; int a[MAXN]; inline int read(){ int x=0,t=1,c; while(!isdigit(c=getchar())) if(c=='-') t=-1; while(isdigit(c)) x=x*10+c-'0',c=getchar(); return x*t; } bool check(int x){ int cnt=1,dis=a[1]+x; for(int i=2;i<=n;i++){ if(a[i]<dis) continue; ++cnt,dis=a[i]+x; } return cnt>=m; } void erfen(){ int l=0,r=a[n]-a[1]; while(l<=r){ int mid=l+r>>1; if(check(mid)) l=mid+1; else r=mid-1; } printf("%d\n",r); } int main(){ n=read(),m=read(); for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+n+1); erfen(); return 0; }
- 1
信息
- ID
- 1053
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者