Submission #1092974

#TimeUsernameProblemLanguageResultExecution timeMemory
1092974TommasoUlianMobile (BOI12_mobile)C++17
0 / 100
781 ms41324 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; #pragma GCC optimize("Ofast,no-stack-protector",3) 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 [x,y]:torri){ if(r*r >= y*y)s.push({max(0.0,x-sqrt(r*r-y*y)),min((double)L,x+sqrt(r*r-y*y))}); } double curr = 0; while(!s.empty()){ auto seg = s.front(); s.pop(); if(seg.first <= curr){ curr = seg.second; } 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 = 0, r = 20e9; double ans = r; while(r-l >= 0.00001){ double c = (l + (r-l)/2); //cout << c << endl; if(good(c)){ ans = min(ans,c); r = c; } else{ l = c; } } cout << ans << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 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...