7 条题解
-
0
/* int %o/%lo(八进制) %d/%i/%ld/%li(十进制) %x/%lx(十六进制)[如标名为o/lo/d/i/lo/li/x/lx即输出为八进制/十进制/十六进制] longlong %lld float %f/%e double %lf/%le char %c char[] %s 'a'=97 'z'=122 'A'=65 'Z'=90 '0'=48 '9'=57 */ #include <iostream> #include <iomanip> #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> #include <ctime> #include <limits> #include <assert.h> #include <stdlib.h> using namespace std; #define LL long long #define ull unsigned long long const int N=1e5+10; const int INF=0x3f3f3f3f; const double pi=3.1416; int n,m,a[N],l,r,ans; bool check(int mid){ int sum=1; int last=a[1]; for(int i=2;i<=n;i++){ if(last+mid<=a[i]){ last=a[i]; sum++; } } return sum>=m; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); l=1; r=a[n]-a[1]; while(l<=r){ int mid=(l+r)>>1; if(check(mid)){ ans=mid; l=mid+1; }else{ r=mid-1; } } cout<<ans<<endl; return 0; }
信息
- ID
- 357
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- 递交数
- 404
- 已通过
- 100
- 上传者