Submission #1247220

#TimeUsernameProblemLanguageResultExecution timeMemory
1247220tkhoi13Mobile (BOI12_mobile)C++20
0 / 100
1097 ms48176 KiB
#include <bits/stdc++.h> #define db double #define pb push_back #define all(x) begin(x), end(x) #define sz(x) ((int)(x).size()) using namespace std; int n; db L; vector<pair<db, db>> cord; bool ok(db x) { vector<pair<db, db>> seg; for (auto &[xi, yi] : cord) { if (yi > x) continue; db dx = sqrt(x * x - yi * yi); db l0 = max(0.0, xi - dx); db r0 = min(L, xi + dx); if (l0 > r0) continue; seg.pb({l0, r0}); } if (seg.empty()) return false; sort(all(seg)); db last = 0; for (auto &[l, r] : seg) { if (l > last + 1e-7) return false; last = max(last, r); if (last >= L - 1e-7) return true; } return last >= L - 1e-7; } void solve() { cin >> n >> L; cord.clear(); for (int i = 0; i < n; ++i) { db x, y; cin >> x >> y; if (cord.empty() || cord.back().first != x) { cord.pb({x, y}); } } n = sz(cord); db l = 0, r = 2e9; for (int it = 0; it < 100; ++it) { db mid = (l + r) / 2; if (ok(mid)) r = mid; else l = mid; } cout << fixed << setprecision(6) << r << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...