1 条题解
-
0
C++ :
#include <bits/stdc++.h> #define M 100005 using namespace std; double dis[M], K; int n; bool check(double t) { double pre = dis[0] + t; for (int i = 1; i < n; i++) { if (pre + K < dis[i] - t) return false; pre = min(dis[i] + t, pre + K); } return true; } int main() { cin >> K >> n; for (int i = 0; i < n; i++) scanf("%lf", &dis[i]); double L = 0, R = 1e9, ans; while (R - L > 1e-6) { double mid = (L + R) / 2; if (check(mid)) ans = mid, R = mid; else L = mid; } printf("%.3f\n", L); return 0; }
信息
- ID
- 539
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者