Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
109335 | 李承瀚 | 跳石头 | C++ | 解答错误 | 0 | 12 MS | 448 KB | 467 | 2023-11-08 13:32:09 |
#include<iostream> #include<cstdio> using namespace std; int l,n,m,a[50002]; bool check(int x){ int t=0; int sum=0; for(int i=1;i<=n;i++){ if(a[i]-t>=x){ t=a[i]; }else{ sum++; } } if(l-t<x){ sum++; } return sum<=m; } int main(){ cin>>l>>n>>m; int l=1,r=l; for(int i=1;i<=n;i++){ cin>>a[i]; } while(r>l){ int abc=(l+r+1)>>1; if(check(abc)){ l=abc; }else{ r=abc-1; } } cout<<l; return 0; }