Submission #1208744

#TimeUsernameProblemLanguageResultExecution timeMemory
1208744catsarecool5530Mobile (BOI12_mobile)C++20
100 / 100
285 ms16068 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl "\n";
#define all(x) x.begin(), x.end()
#define int long long
int MOD = 1e9 + 7;
const ll INF = 1e18;


void solve() {
    int n, l; cin >> n >> l;
    vector<array<int, 2>> arr(n);
    for (int i = 0; i < n; i++) {
        cin >> arr[i][0] >> arr[i][1];
    }
    auto works = [&](double r) {
        double curr = 0;
		for (int i = 0; i < n; i++) {
			double delta = sqrt(r * r - arr[i][1] * arr[i][1]);
			double a = arr[i][0] - delta, b = arr[i][0] + delta;
			if (a <= curr) curr = max(curr, b);
		}
        return curr >= l;
    };
    double l1 = 0, r = 1.5e9;
    while (r - l1 > 1e-4) {
        double mid = (l1 + r) / 2;
        if (works(mid)) {
            r = mid;
        } else {
            l1 = mid;
        }
    }
    cout << fixed << setprecision(10) << l1 << endl;

}
 
signed main() {
    ios::sync_with_stdio(0); cin.tie(NULL);
    // freopen("walk.in", "r", stdin);
    // freopen("walk.out", "w", stdout);
    ll t = 1; // cin >> t;
    while (t--) {
        solve();
    }
}
#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...