Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127784 | 柯昊阳 | 跳石头 | C++ | 通过 | 100 | 23 MS | 452 KB | 445 | 2024-01-25 10:14:39 |
#include <bits/stdc++.h> using namespace std; int n,m,k,a[100005]; bool check(int dis){ int cur = 0,res = 0; for(int i = 1;i<=m+1;i++){ if(a[i]-a[cur]<dis) res++; else cur = i; } if(res>k) return false; return true; } int main(){ cin>>n>>m>>k; for(int i = 1;i<=m;i++) cin>>a[i]; a[m+1] = n; int l = 1,r = n; while(l<r){ int mid = (l+r+1)/2; if(check(mid)) l = mid; else r = mid-1; } cout<<l<<endl; }