제출 #1079339

#제출 시각아이디문제언어결과실행 시간메모리
1079339EmmaXIIMobile (BOI12_mobile)C++17
4 / 100
1031 ms64732 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; double L; cin >> N >> L; vector<double> X(N); vector<double> 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) return -1.0; return sqrt(r*r - y*y); }; auto can_do = [&](double R) { vector<pair<double, double>> ivals; for (int i=0;i<N;i++) { double hw = get_hw(Y[i], R); if (hw < 0) continue; ivals.push_back({X[i] - hw, X[i] + hw}); } // sort(all(ivals)); double progress = 0.; for (auto [l, r] : ivals) { if (l > progress + 1e-5) return false; progress = max(progress, r); } return progress >= L; }; double lo = 0; double hi = L + abs(X[0]) + abs(Y[0]); hi = hi*hi; for (int i=0;i<N;i++) { double nhi = max( X[i]*X[i] + Y[i]*Y[i], (X[i]-L)*(X[i]-L) + Y[i]*Y[i] ); hi = min(nhi, hi); } hi = sqrt(hi); while (hi - lo > 5e-4) { double mid = (lo + hi) / 2; if (can_do(mid)) hi = mid; else lo = mid; } cout << setprecision(10); cout << lo << 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...