Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128299 | mairuisheng | 跳石头 | C++ | 通过 | 100 | 8 MS | 456 KB | 554 | 2024-01-25 16:34:56 |
#include <iostream> using namespace std; int l,n,m,a[50005],ans; bool check(int dis) { int count=0,last=0; for(int i=1;i<=n;i++) if(a[i]-last<dis)count++; else last=a[i]; if(count>m)return 0;return 1; } int main() { ios::sync_with_stdio(0); cin>>l>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; a[n+1]=l; int fl=0,fr=l; while(fl<=fr) { int mid=(fl+fr)/2; if(check(mid))fl=mid+1,ans=mid; else fr=mid-1; } cout<<ans; return 0; }