제출 #1212807

#제출 시각아이디문제언어결과실행 시간메모리
1212807nguyenkhangninh99Mobile (BOI12_mobile)C++20
100 / 100
679 ms31716 KiB

#include <bits/stdc++.h>
using namespace std;
#define int long long
 
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n, L; cin >> n >> L;
    vector<array<int, 2>> a(n);
    for(int i = 0; i < n; i++) cin >> a[i][0] >> a[i][1];
    
    double l = 0, r = 1e9;
    
    for(int _ = 0; _ <= 50; _++){
        double mid = (l + r) / 2;
        
        vector<array<double, 2>> cover(n);
        for (int i = 0; i < n; i++) {
            if(a[i][1] > mid) cover[i][0] = cover[i][1] = -1e18;
            else{
                cover[i][0] = a[i][0] - sqrt(mid * mid - a[i][1] * a[i][1]);
                cover[i][1] = a[i][0] + sqrt(mid * mid - a[i][1] * a[i][1]);
            }
        }

        double cur = 0;
        for (int i = 0; i < n; i++) {
            if (cover[i][0] > cur) continue;
            cur = max(cur, cover[i][1]);
        }

        if(cur >= L) r = mid;
        else l = mid;
    }
    cout << fixed << setprecision(10) << l;

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