Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
129059 | 陆妍凯 | 上古神器 | C++ | 解答错误 | 0 | 29 MS | 640 KB | 600 | 2024-01-26 16:03:42 |
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int NR=100010; int n,p,x[NR],t[NR]; bool check(int d) { int i,s=0,cnt=0; for(i=1;i<=n;i++) if(x[i]-x[s]>d) { s=i; cnt++; } if(cnt<p) return false; return true; } int main() { int i,left=1,right,ans=2e9; cin>>n>>p; for(i=1;i<=n;i++) cin>>x[i]; sort(x+1,x+n+1); right=x[n]; while(left<=right) { int mid=(left+right)/2; if(check(mid)==true) { ans=min(ans,mid); right=mid-1; } else left=mid+1; } cout<<ans<<endl; return 0; cout<<"KKKKK:"; }