Submission #1127972

#TimeUsernameProblemLanguageResultExecution timeMemory
1127972Climber420Mobile (BOI12_mobile)C++20
35 / 100
1096 ms15944 KiB
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for(int i= 0; i<(n); i++)
#define reps(i,s, n) for(int i= (s); i<(n); i++)
#define each(a, x) for (auto &a : x)
#define vv(T) vector<T>
#define endl '\n'
#define sz(x) (int)x.size()
#define ll long long
#define all(c) begin(c), end(c)
#define fi first
#define se second
#define mp make_pair
#define pb push_back

#define wr cout<<
#define wre wr endl;
#define wrut(a) {wre each(iii,(a))wr iii<<" "; wre}
#define wrot(a,b,c) {wre wr a<<" "<<b<<" "<<c; wre}
#define int ll
#define ld long double
constexpr int mn=1e6 +8;
constexpr ld e = 1e-3, inf =1e10;
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int n,L; cin>>n>>L;
    int x,y;
    vector<pair<int,int>>stacje(n);
    rep(i,n){
        cin>>x>>y;
        stacje[i]={x,abs(y)};
    }
    
    auto check = [&](ld r){
        ld mr =0;
        each(s, stacje){
            ld d= sqrt(r*r - s.se*s.se);
            ld a = s.fi -d;
            ld b = s.fi +d;
            if (a<=mr){
                mr=max(mr,b);
            }
        }
        return (mr>=L);
    };
    ld l = 0, r = 1e9,mid;
    while(r-l>e){
        mid=(l+r)/2;
        if (check(mid))r=mid;
        else l=mid;
    }
    wr fixed<<setprecision(5)<<mid;

} 
#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...