제출 #553428

#제출 시각아이디문제언어결과실행 시간메모리
553428Hona_NguyenMobile (BOI12_mobile)C++14
100 / 100
887 ms35404 KiB
#include<bits/stdc++.h> #define prob "mobile" #define x first #define y second using namespace std; const int maxn = 1e6; const int MOD = 1e9 + 7; const double eps = 1e-9; int n,L; pair<double,double> p[maxn+5]; int main(){ // freopen(prob".in","r",stdin); // freopen(prob".out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin >> n >> L; for(int i=1;i<=n;i++) cin >> p[i].x >> p[i].y; auto check = [&](double val) -> int{ // vector<pair<double,double>> G; double curx = 0; for(int i=1;i<=n;i++){ // if(val < p[i].y) return 0; double tmp = sqrt(val*val-p[i].y*p[i].y); double xL = p[i].x - tmp; double xR = p[i].x + tmp; if(xL <= curx){ curx = max(curx, xR); } // G.push_back(make_pair(xL,xR)); } // sort(G.begin(),G.end(), [](const pair<double,double> A, const pair<double,double> B){ // if(A.first == B.first) return A.second < B.second; // return A.first < B.first; // }); // for(int i=0;i<n;i++){ // if(G[i].x <= curx){ // curx = max(curx, G[i].y); // } // } if(curx >= (double)(L)) return 1; return 0; }; double low = 1, high = (double)(1.5e9), res = 0; for(int i=1;i<=100;i++){ if(high - low < eps) break; double mid = (low + high) / (double)(2); if(check(mid)){ res = mid; high = mid; } else{ low = mid; } } cout << fixed << setprecision(6); cout << res; }
#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...