1 条题解
-
0
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <string> #include <cstdio> #include <queue> #include <ctime> using namespace std; int i,j,k,l,m,n,a[55000],r,mid,ans,s; int check() { int i,j,k=0; for (i=0,j=1;j<=n;j++) { if (a[j]-a[i]<mid) { k++;continue; } i=j; } if (s-a[i]<mid||k>m) return 0; return 1; } int main() { scanf("%d%d%d",&s,&n,&m); for (i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for (l=0,r=s;l<=r;) { mid=(l+r)/2; if (check()) l=mid+1,ans=mid;else r=mid-1; } printf("%d",ans); return 0; }
- 1
信息
- ID
- 1650
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 5
- 上传者