Submission #1167888

#TimeUsernameProblemLanguageResultExecution timeMemory
1167888julia_08Mobile (BOI12_mobile)C++20
0 / 100
1097 ms65348 KiB
#include <bits/stdc++.h> using namespace std; using ld = long double; using ll = long long; const int MAXN = 1e6 + 10; ll x[MAXN], y[MAXN]; int n; ll L; bool check(ld d){ vector<pair<ld, ld>> segs; for(int i=1; i<=n; i++){ ld delta = (ld) (d * d - y[i] * y[i]); if(delta < 1e-9) continue; ld l = (ld) (x[i] - sqrt(delta)), r = (ld) (x[i] + sqrt(delta)); if(r >= 0) segs.push_back({max(l, (ld) 0), r}); } if(segs.empty()) return true; sort(segs.begin(), segs.end()); if(segs[0].first > 0|| segs[(int) segs.size() - 1].second < L) return true; for(int i=1; i<(int) segs.size(); i++){ if(segs[i].first - segs[i - 1].second > 1e-9){ return true; } } return false; } ld bs(){ ld l = 0, r = 1e10; for(int i=0; i<75; i++){ ld m = (l + r) / 2; if(check(m)) l = m; else r = m; } return l; } int main(){ cin.tie(0)->sync_with_stdio(0); cin >> n >> L; for(int i=1; i<=n; i++){ cin >> x[i] >> y[i]; } cout << fixed << setprecision(6) << bs() << "\n"; 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...