제출 #1290055

#제출 시각아이디문제언어결과실행 시간메모리
1290055_filya_Mobile (BOI12_mobile)C++20
60 / 100
1098 ms65336 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
    // ifstream cin("input.txt");
    // ofstream cout("output.txt");
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    ll n, L;
    cin >> n >> L;
    vector<pair<ll, ll>> points(n);
    for (int i = 0; i < n; i++) {
        cin >> points[i].first >> points[i].second;
    }

    long double low = 0, high = 2e9;
    while (high - low > 1e-5) {
        long double mid = (low + high) / 2;
        
        vector<pair<long double, long double>> intervals;
        for (auto& p : points) {
            if (abs(p.second) > mid) continue;
            long double dx = sqrt(mid * mid - (long double)(p.second) * (p.second));
            long double left = p.first - dx;
            long double right = p.first + dx;
            intervals.push_back({max((long double)0, left), min((long double)L, right)});
        }
        
        //sort(intervals.begin(), intervals.end());
        
        long double covered = 0;
        for (auto& inter : intervals) {
            if (inter.first <= covered) covered = max(covered, inter.second);
        }
        
        if (covered >= L) {
            high = mid;
        } else {
            low = mid;
        }
    }
    
    cout << fixed << setprecision(5) << low << '\n';
    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...