Submission #1092980

#TimeUsernameProblemLanguageResultExecution timeMemory
1092980TommasoUlianMobile (BOI12_mobile)C++17
100 / 100
296 ms35436 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; using vi = vector<int>; using vvi = vector<vector<int>>; using vll = vector<ll>; using vvll = vector<vector<ll>>; #define all(x) x.begin(), x.end() int main() { std::ios::sync_with_stdio(false); std::cin.tie(NULL); int N; ll L; cin >> N >> L; vector<ll> X(N); vector<ll> Y(N); for (int i=0;i<N;i++) cin >> X[i] >> Y[i]; auto get_hw = [&](double y, double r) { if (abs(y) > r - 1e-6) return -1.0; return sqrt((r-y) * (r+y)); }; auto can_do = [&](double R) { double progress = 0.; for (int i=0;i<N;i++) { double hw = get_hw((double)Y[i], R); if (hw < 0) continue; double l = (double)X[i] - hw; double r = (double)X[i] + hw; if (l <= progress + 1e-6) progress = max(progress, r); if (progress >= (double)L) return true; } return false; }; double lo = 1; double hi = 2e9; while (hi - lo > 1e-4) { double mid = (lo + hi) / 2; if (can_do(mid)) hi = mid; else lo = mid; } cout << setprecision(18); cout << (lo + hi)/2 << endl; 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...