#include<bits/stdc++.h>
#include <cstdio>
using namespace std;
#define int long long
#define ld long double
#define ff first
#define ss second
#define INF -1e18
#define mp make_pair
int n,k; 
ld d(pair<ld,ld> a, pair<ld,ld> b){
    return sqrt((a.ff - b.ff)*(a.ff - b.ff) + (a.ss - b.ss)*(a.ss - b.ss));
}
ld f(pair<ld,ld> a, pair<ld,ld> b){
    ld res = ((b.ss)*(b.ss) - (a.ss)*(a.ss))/(2*(b.ff - a.ff)) + (a.ff + b.ff)/2;
    if(res < 0) return 0;
    if(res > k) return k;
    return res;
}
int32_t main(){
    #ifdef LOCAL_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    cin>>n>>k;
    ld ans = INF;
    vector<pair<ld,ld>> v(n);
    for(int i = 0; i < n; i++){
        ld x,y; cin>>x>>y;
        v[i] = {x,y};
    }
    v.erase(unique(v.begin(), v.end(), [&](pair<int,int> a, pair<int,int> b){return a.ff == b.ff;}),v.end());
    for(int i = 0; i < n; i++){
        if(i != n-1){
            ld chf = f(v[i],v[i+1]); 
            ans = max(ans, d(mp(chf,0), v[i]));
        }
        if(i != 0){
            ld chb = f(v[i-1],v[i]);
            ans = max(ans, d(mp(chb,0),v[i]));
        }
    }
    cout<<ans<<'\n';
}
| # | 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... |