제출 #1101163

#제출 시각아이디문제언어결과실행 시간메모리
1101163BLOBVISGODMobile (BOI12_mobile)C++17
50 / 100
1074 ms49036 KiB
#include "bits/stdc++.h"
#pragma GCC optimize("Ofast")
using namespace std;
#define rep(i,a,b) for(int i=(a); i<(b); ++i)
#define all(x) x.begin(),x.end()
#define sz(x) int(x.size())
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<vi> vvi;

int main(){
    cin.tie(NULL),cin.sync_with_stdio(false);
    
    int n,l; cin >> n >> l;
    vector<array<ll,2>> a(n);
    rep(i,0,n) rep(j,0,2) cin >> a[i][j];
    rep(i,0,n) a[i][1] = a[i][1]*a[i][1];
    sort(all(a));

    double lo = 0, hi = 2e9;
    rep(iter,0,72){
        double mid = (lo+hi)/2, mid2 = mid*mid;
        vector<array<double,2>> segs;
        rep(i,0,n) if (a[i][1] < mid2){
            double d = sqrt(mid2 - a[i][1]);
            segs.push_back({a[i][0]-d,a[i][0]+d});
        }
        // sort(all(segs), [&](auto l, auto r){
        //     return l[1] < r[1];
        // });
        double r = 0;
        for(auto [L,R] : segs){
            if (L <= r) r = max(r,R);
        }
        if (r < l) lo = mid;
        else hi = mid;
    }
    cout << setprecision(15) << lo << '\n';
}
#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...