Submission #1166168

#TimeUsernameProblemLanguageResultExecution timeMemory
1166168fryingducMobile (BOI12_mobile)C++20
50 / 100
1096 ms16568 KiB
#include "bits/stdc++.h" using namespace std; #ifdef duc_debug #include "bits/debug.h" #else #define debug(...) #endif const int maxn = 1e6 + 6; const double eps = 1e-4; int n, L; void solve() { cin >> n >> L; vector<pair<int, int>> a(n); for (auto &i : a) { cin >> i.first >> i.second; } vector<pair<int, int>> nv; for (int i = 0; i < n; ++i) { int cur = 0; long long x = 1e18; int t = 1e9; while (i + cur < n and a[i].first == a[i + cur].first) { if (x > 1ll * a[i + cur].second * a[i + cur].second) { x = 1ll * a[i + cur].second * a[i + cur].second; t = a[i + cur].second; } ++cur; } nv.emplace_back(a[i].first, t); i = i + cur - 1; } a.swap(nv); vector<pair<int, int>>().swap(nv); n = (int)a.size(); double le = 0, ri = 1e9; double cvg; double l, r, len; for (int ite = 0; ite < 50; ++ite) { if (ri - le > eps) { double mid = (le + ri) / 2; cvg = 0; for (int i = 0; i < n; ++i) { if (a[i].second > mid) continue; len = sqrtl(mid * mid - 1ll * a[i].second * a[i].second); l = (a[i].first - len); r = (a[i].first + len); if (l > L || r < 0) continue; l = max(l, 0.0); r = min(r, L * 1.0); if (cvg >= l) { cvg = max(cvg, r); } } if (cvg >= L) { ri = mid; } else { le = mid; } } } printf("%8f", ri); } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); solve(); return 0; }
#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...