Submission #1184285

#TimeUsernameProblemLanguageResultExecution timeMemory
1184285Francisco_MartinMobile (BOI12_mobile)C++20
100 / 100
290 ms16048 KiB
#include <bits/stdc++.h>
using namespace std;

#define debug(v) cerr<<#v" = "<<(v)<<"\n";
#define debugvec(v) do{cerr<<#v<<" = [";for(int i=0;i<v.size();i++)cerr<<v[i]<<(i==v.size()-1?"":", ");cerr<<"]\n";}while(0);
#define fst first
#define snd second
#define gcd(x,y) __gcd(x,y)
#define OnlineJudge(s) freopen((s".in"),"r",stdin); freopen((s".out"),"w",stdout);
#define fastIO() cin.tie(0)->sync_with_stdio(0);cin.exceptions(cin.failbit);
#define boolsolve() cout<<(solve()?"Yes":"No");

using ll=long long;
using ull=unsigned long long;
using pll=pair<ll,ll>;
using vll=vector<ll>;
using vpll=vector<pll>;
using vvll=vector<vll>;

const ll INF=1e10;
const ll MOD=1e9;
const ll MAXN=2e5+100;

ll fexp(ll a,ll b,ll m=MOD){
	ll r=1;
	for(a%=m;b;b>>=1,a=(a*a)%m)if(b&1)r=(r*a)%m;
	return r;
}
ll lcm(ll a,ll b){return a*b/gcd(a,b);}

void solve(){
    ll n, len;
    cin >> n >> len;
    vll A(n), B(n);
    for(int i=0; i<n; i++) cin >> A[i] >> B[i];
    auto ok=[&](double m){
        double d=0;
        for(int i=0; i<n; i++){
            double a=sqrt(m*m-B[i]*B[i]), b=A[i]-a, c=A[i]+a;
            if(b<=d) d=max(d,c);
        }
        return d>=len;
    };
    double l=1, r=INF;
    while(r-l>1e-3){
        double m=(l+r)/2;
        if(ok(m)) r=m;
        else l=m;
    }
    cout << fixed << setprecision(4) << l;

}

int main(){
    fastIO();
    //OnlineJudge("")
    ll t=1;
    //cin >> t;
    while(t--){
        solve();
        //cout << "\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...