Submission #1031419

#TimeUsernameProblemLanguageResultExecution timeMemory
1031419vjudge1Mobile (BOI12_mobile)C++17
60 / 100
1086 ms35152 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using ld = long double;

#define int ll
#define vi vector<int>
#define ii pair<int,int>
#define x first
#define y second
#define fore(a, b, c) for(int a=b; a<c; ++a)
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
#define endl '\n'
#define dbg(x) cerr << #x << ": " << x << endl
#define raya cerr << "================" << endl;

ld eps = 1e-4;

signed main(){

    int n, len;
    cin >> n >> len;

    vector<ii> p(n);
    fore(i, 0, n){
        cin >> p[i].x >> p[i].y;
    }

    ld low = 0, high = 1e9+5;
    ld ans = high;

    while(low <= high){
        ld mid = low + (high - low) / 2;
        
        ld mx = 0;

        fore(i, 0, n){
            ld delta = (2*p[i].x)*(2*p[i].x)-4*(p[i].x*p[i].x+p[i].y*p[i].y-mid*mid);
            ld a = (2*p[i].x - sqrtl(delta)) / 2;
            ld b = (2*p[i].x + sqrtl(delta)) / 2;
            
            if(a <= mx){
                mx = max(mx, b);
            }
        }

        if(mx >= len){
            ans = mid;
            high = mid-eps;
        } else {
            low = mid+eps;
        }

    }

    cout << fixed << setprecision(6) << ans;

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