Submission #1093054

#TimeUsernameProblemLanguageResultExecution timeMemory
1093054TommasoUlianMobile (BOI12_mobile)C++17
0 / 100
806 ms47292 KiB
#include <bits/stdc++.h> #define PB push_back #define MP makepair #ifndef ONLINE_JUDGE #define DEBUG(x) cout << #x << " = " << (x) << endl #else #define DEBUG(x) #endif #define FOR(n) for(int i = 0; i < (n); i++) #define SORTA(v) sort((v).begin(), (v).end()) #define SORTD(v) sort((v).rbegin(), (v).rend()) #define PRINT(v) for(auto x: (v))cout << x << " "; cout << endl; #define TWO(n) (1 << (n)) #define INPUT(v) for(auto &x : (v))cin >> x; typedef long long ll; using namespace std; vector<pair<double,double>> torri; ll n,L; bool good(double r){ queue<pair<double,double>> s; for(auto a:torri){ double x = a.first, y = a.second; if (abs(y) <= r-10e-6)s.push({x-sqrt((r+y)*(r-y)),x+sqrt((r+y)*(r-y))}); } double curr = 0; while(!s.empty()){ if(curr >= L)return true; auto seg = s.front(); s.pop(); if(seg.first <= curr+10e-7){ curr = max(seg.second,curr); } else return false; } if(curr < L)return false; return true; } void solve(){ cin >> n >> L; torri = vector<pair<double,double>>(n); for(int i = 0; i < n; i++){ cin >> torri[i].first >> torri[i].second; } double l = 1, r = 2e9; double ans = r; while(r-l >= 10e-7){ double c = (r+l)/2; //cout << c << endl; if(good(c)){ ans = min(ans,c); r = c; } else{ l = c; } } cout << ans << endl; } int main(){ cout << setprecision(18); ios::sync_with_stdio(false); solve(); 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...