Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
109377 | 曾煦翔 | 跳石头 | C++ | 解答错误 | 0 | 13 MS | 456 KB | 490 | 2023-11-08 13:39:22 |
#include <bits/stdc++.h> using namespace std; int k , n , m; int a[100005]; bool check(int x) { int p = a[0]; int sum = 0; for(int i = 1; i <= n + 1; i++) { if(a[i] - p < x) sum++; else p = a[i]; } return sum <= m; } int main() { int l , r; cin >> k >> n >> m; for(int i = 1; i <= n; i++) cin >> a[i]; a[n + 1] = l; r = l + 1; while(r - l > 1) { int mid = (r + l) / 2.0; if(check(mid)) l = mid; else r = mid; } cout << l; }