Submission #1302727

#TimeUsernameProblemLanguageResultExecution timeMemory
1302727ChottuFMobile (BOI12_mobile)C++17
31 / 100
1098 ms81004 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n,l;
    cin >> n >> l;
    pair<long double,long double> arr[n];
    for (int i = 0; i<n; i++){
        cin >> arr[i].first >> arr[i].second;
    }
    const long double eps = 1e-7;
    long double lo = 0;
    long double hi = 2e9;
    long double bst = hi;
    for (int h = 0; h<100; h++){
        long double mid = (lo+hi)/2;
        vector<pair<long double, long double>> all;
        for (int i = 0; i<n; i++){
            auto [x,y] = arr[i];
            if (abs(y)-mid > eps) continue;
            long double num = (mid*mid) - (y*y);
            if (num < 0) num = 0;
            num = sqrt(num);
            long double lft = x - num;
            long double rgt = x + num;
            all.push_back({lft,rgt});
        }
        sort(all.begin(), all.end());
        long double cr = 0LL;
        bool flag = true;
        for (auto u : all){
            auto [a,b] = u;
            if (cr > a-eps){
                cr = max(cr,b);
            }
            else{
                flag = false;
                break;
            }
        }
        if (flag && cr>l-eps){
            bst = min(bst, mid);
            hi = mid;
        }
        else{
            lo = mid;
        }
    }
    cout << fixed << setprecision(10) << bst;
    return 0;
}
#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...