Submission #655574

#TimeUsernameProblemLanguageResultExecution timeMemory
655574bLICMobile (BOI12_mobile)C++17
0 / 100
1097 ms83084 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define sz(x) (int)(x).size() #define ft first #define sd second #define pb push_back #define endl '\n' typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<ll> vl; typedef pair<ll, ll> pll; typedef vector<pll> vll; typedef vector<vi> vvi; #define dbg if(1) template <class _T> string printbit(_T x) {string s="";while(x){s=((x%2)?'1':'0')+s;x/=2;} return s;} template <class _T> string printbit(_T x, int len) {string s="";while(len--){s=((x%2)?'1':'0')+s;x/=2;} return s;} const int MOD = 1e9+7; const int INF = 1e9; const int maxN = 1e6+5; ll n; long double l; vector<pair<long double, long double>> cor(maxN); bool check(long double mid){ vector<pair<long double, long double>> coord; for (int i =0;i<n;i++){ auto p = cor[i]; auto power = mid; if (p.second-power>0) continue; else { long double len = sqrt(power*power - p.sd*p.sd); coord.pb(make_pair(p.ft-len, p.ft+len)); } } // sort(all(coord)); if (coord.empty() || coord[0].ft>1e-5) return false; long double curr = 0; for (auto x:coord){ if (x.ft-curr>-1e-4) return false; curr = max(curr, x.sd); if (curr-l>-1e-4) return true; } return curr-l>-1e-4; } void solve(){ cin>>n>>l; for (int i = 0;i<n;i++) { cin>>cor[i].ft>>cor[i].sd; cor[i].sd = abs(cor[i].sd); } long double l = 0, r = 1e14; while(r-l>1e-5){ long double mid = (l+r)/2; if (check(mid)) r = mid; else l = mid; } cout<<fixed<<setprecision(6)<<r; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t = 1; // cin>>t; while(t--){ solve(); cout<<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...