Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128145 | zhangyang | 跳石头 | C++ | 运行超时 | 30 | 1000 MS | 644 KB | 755 | 2024-01-25 13:55:07 |
#include<iostream> #include<algorithm> using namespace std; #define int long long int l,m,n,a[50005]; const int N=1e9+1; bool check(int x){ int cnt=0,ls=0; for(int i=1;i<=n;i++){ if(a[i]-a[ls]<x){ cnt++; if(cnt>m) return false; }else ls=i; } return true; } int binary_search(int start, int end) { int ret = -1; // 未搜索到数据返回-1下标 int mid; while (start < end) { mid = (start+end)/2; if (check(mid)) start = mid; else end = mid - 1; } return start; // 单一出口 } signed main(){ cin>>l>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; n++; a[n]=l; cout<<binary_search(1,l); return 0; }