Submission #1216049

#TimeUsernameProblemLanguageResultExecution timeMemory
1216049jakeob77Mobile (BOI12_mobile)C++20
0 / 100
896 ms39580 KiB
#include <bits/stdc++.h>
#include <bits/extc++.h> 
using namespace std;
//using namespace __gnu_pbds;
#define ll long long
#define pb push_back
#define ins insert
//cout<<fixed<<setprecision(3); 3 decimalke brez fixed pa 3 zanesljiva mesta
const int MAXN=2e5+2;
const long long linf=1e18;
const int inf=1e9;
const int mod=1e9+7;

void solve(){
    int n,m;cin>>n>>m;
    vector<int>a(n),b(n);
    for(int i=0;i<n;i++) {
        cin>>a[i]>>b[i];
        b[i]=abs(b[i]);
    }
    auto f=[&](long double r)->bool{
        vector<pair<long double,long double>>interval(n);
        for(int i=0;i<n;i++){
            if(r<=b[i]) return false;
            long double d=sqrt(r*r-b[i]*b[i]);;
            interval[i].first=a[i]-d;
            interval[i].second=a[i]+d;
        }
        for(int i=0;i<n;i++){
            if(i==0){
                if(interval[i].first>0) return false;
            }
            else{
                if(i==n-1){
                    if(interval[i].second<m) return false;
                }
                if(interval[i].first>interval[i-1].second) return false;
            }
        }
        return true;
    };

    long double l=0,r=3e9;long double e=0.0000001;
    while(r-l>e){
        long double mid=l+(r-l)/2;
        if(f(mid)){
            r=mid;
        }
        else l=mid;
    }
    cout<<fixed<<setprecision(5)<<l<<endl;
}
int main(){
    std::ios::sync_with_stdio(false);
	std::cin.tie(NULL); 
    int t=1;
    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...