Submission #949750

#TimeUsernameProblemLanguageResultExecution timeMemory
949750KavelmydexMobile (BOI12_mobile)C++17
100 / 100
419 ms61800 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int,int> #define vi vector<int> #define rep(i,x,n) for(int i=x; i<n; ++i) #define For(i,n) rep(i,0,n) #define endl "\n" #define sp ' ' #define pb push_back #define f first #define s second #define sz size() #define all(x) (x).begin(),(x).end() const int N = 4e5+10, OO = 1e18, mod = 1e9, mx = 2e6; void tr(int a, int b){cout << a << sp << b << endl;} void cmx(double &a, double b){a = max(a,b);} void cmn(double &a, double b){a = min(a,b);} int n,l; bool in(int x){return 0<=x && x<=l;} vector <pi> inp,v; bool ok(double m){ double mx = 0; For(i,n){ auto [x,y] = v[i]; if(y > m) continue; double d = sqrt(m * m - y * y); if(x-d <= mx && mx < x+d){ mx = x+d; } } return mx >= l; } int32_t main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> l; For(i,n){ int x,y; cin >> x >> y; y = abs(y); inp.pb({x,y}); } For(i,n){ int j = i, y = inp[i].s; while(j < n && inp[i].f == inp[j].f) y = min(y,inp[j].s), j++; v.pb({inp[i].f, y}); i = j-1; } inp.clear(); n = v.sz; double l = 0, r = 1e10; For(i,60){ double m = (l+r)/2; if(ok(m)) r = m; else l = m; } cout << fixed << setprecision(4) << r << 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...