#include <bits/stdc++.h>
#define int long long
using namespace std;
/*void setIO(string name = "") {
    if (!name.empty()) {
        freopen((name + ".in").c_str(), "r", stdin);
        freopen((name + ".out").c_str(), "w", stdout);
    }
}*/
pair<int,int>  check(int mid,int x) {
    int y = mid - 1;
    int cnt = (y * (y + 1)) / 2;
    int rest = x - mid;
    return pair<int, int> {cnt, rest};
}
void solve() {
    int n, L;
    cin >> n >> L;
    vector <pair<int, int> > v(n);
    for (int i = 0; i < n; i++) {
        cin >> v[i].first >> v[i].second;
    }
    double l = 0, r = INT_MAX;
    for (int j = 0; j < 100; j++) {
        double mid = l + (r - l) / 2;
        double curr = 0;
        for (int i = 0; i < n; i++) {
            double a = v[i].second * v[i].second;
            double c = mid * mid;
            double dis = sqrt(c - a);
            double sol = v[i].first - dis;
            double oh = v[i].first + dis;
            if (sol <= curr) {
                curr = oh;
            }
        }
        if (curr >= L) {
            r = mid;
        }
        else {
            l = mid;
        }
    }
    cout << fixed << setprecision(10) << l << endl;
}
        
signed main() {
    //setIO("balancing");
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n = 1;
    //cin >> n;   
    while (n--) {
        solve();
    }
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |