Submission #656300

#TimeUsernameProblemLanguageResultExecution timeMemory
656300chjiaoMobile (BOI12_mobile)C++14
100 / 100
460 ms16084 KiB
#include <bits/stdc++.h> using namespace std; #define fastio ios_base::sync_with_stdio(false);cin.tie(0) #define mp make_pair #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define FOR(i,a,b) for(ll i=a;i<=b;i++) #define FORB(i,a,b) for(ll i=a;i>=b;i--) #define getbit(mask,i) ((mask>>(i))&1) #define getnum(i) (1<<(i)) #define endl "\n" #define sz(x) (int)size(x) #define mp make_pair using ll = long long; const ll MOD1 = 1e9+7; const ll MOD2 = 998244353; const ll MN = 1e5; //first true float/double long double FLOAT_ERR = 1e-5; long double first_true_float(long double lo, long double hi, function<bool(long double)> f) { // if none of the values in the range work, return hi + 1 lo--; hi++; while (hi-lo > FLOAT_ERR) { long double mid = (lo + hi) / 2.0f; if (f(mid)) { hi = mid; } else { lo = mid; } } return lo; } int main() { fastio; //freopen("XXX.in","r",stdin); // freopen("XXX.out","w",stdout); ll N, L; cin >> N >> L; vector<pair<ll, ll>> stations(N); FOR(i,0,N-1) { ll y; cin >> stations[i].first >> y; stations[i].second = y*y; } long double ans = first_true_float(1, 1.5e9, [&](long double mid) { long double mx=0; long double dd=mid*mid, xx; for(auto station:stations) { if(dd-station.second<0) continue; xx=sqrt(dd-station.second); if(station.first-xx<=mx) mx = max(mx, station.first+xx); } return mx>=L; }); cout << fixed << setprecision(6) << ans << endl; }
#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...