#include <bits/stdc++.h>
#define f first
#define ss second
using namespace std;
bool cmp(pair<int,int> a, pair<int,int> b){
if(a.ss == b.ss) return a.f<b.f;
return a.ss<b.ss;
}
bool ok(double m, vector<pair<double,double>> a, double x){
int n = a.size();
vector<pair<double,double>> b;
for(int i=0; i < n; i ++){
double le = a[i].f-sqrt(m*m-a[i].ss*a[i].ss), re = a[i].f+sqrt(m*m-a[i].ss*a[i].ss);
//if(abs(a[i].ss) > m) return 0;
b.push_back({max(0.0,le),max(0.0,re)});
}
sort(b.begin(),b.end());
if(b[0].f > 0 || b[n-1].ss<x) return 0;
double cr = b[0].ss;
for(int i=1; i < n; i ++){
if(b[i].f <= cr) cr = b[i].ss;
if(b[i].f > cr) return 0;
if(b[i].f>=x && b[i].ss>=x) return 1;
}
return 1;
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
double n,x; cin >> n >> x;
vector<pair<double,double>> a(n);
for(auto &i : a) cin >> i.first >> i.second;
double l = -1, r = INT_MAX;
for(int i=0; i < 100; i ++){
double m = (l + r) / 2;
if(ok(m,a,x)) r = m;
else l=m;
}
// ok(5.099020,a,x);
cout << fixed << setprecision(6) << r;
}
# | 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... |