#include <bits/stdc++.h>
using namespace std;;
#define ll long long
#define ar array
#define ld long double
#define int long long
#define all(v) v.begin(), v.end()
// #pragma GCC optimize("O3,Ofast,unroll-loops ")
const int N = 5e5 + 20;
const int M = 20;
const int LOG = 20;
const int INF = 1e17;
int MOD = 1e9 + 7;
const ld EPS = 1e-12;
template<typename T>
inline void chmin(T &x,T y){x = min(x, y);}
template<typename T>
inline void chmax(T &x,T y){x = max(x, y);}
inline void mm(int &x){x = (x % MOD + MOD) % MOD;};
struct SGT{
vector<set<ar<int,3> > > s;
int n;
SGT(){}
SGT(int _n){
n = _n;
s.resize(4 * n);
}
void upd(int k,int tl,int tr,int p, int l,int r){
if(l > tr || tl > r)return;
if(l <= tl && tr <= r){
s[k].insert({p, l , r});
return;
}
int tm = (tl + tr) / 2;
upd(k * 2, tl, tm, p, l, r);
upd(k * 2 + 1, tm + 1, tr, p, l, r);
}
void upd(int p,int l,int r){
upd(1, 1, n, p, l, r);
}
void qry(int k,int tl,int tr, int p,int l,int r,vector<ar<int,3>> &v){
for(auto it = s[k].lower_bound(ar<int,3>{l});it != s[k].end() && ((*it)[0] <= r);it = s[k].erase(it)){
v.push_back(*it);
}
if(tl == tr)return;
int tm = (tl + tr) / 2;
if(p <= tm)qry(k * 2, tl, tm, p, l, r, v);
else qry(k * 2 + 1, tm + 1, tr ,p, l, r, v);
}
vector<ar<int,3>> qry(int p,int l,int r){
vector<ar<int,3> > res;
qry(1, 1, n, p, l, r, res);
return res;
}
};
struct CMP{
vector<int> v;
CMP(){
v = {0, INF};
}
void add(int x){
v.push_back(x);
}
void init(){
sort(all(v));
v.erase(unique(all(v)), v.end());
}
int get(int x){
return lower_bound(all(v), x) - v.begin() + 1;
}
};
void orz(){
int n, m;
cin>>n>>m;
ld x[n], y[n];
for(int i = 0;i < n;i++)cin>>x[i]>>y[i];
ld lo = 0;
ld hi = 2e9;
for(int it = 0;it < 60;it++){
ld mid = (lo + hi) / 2;
ld d = 0;
for(int i = 0;i < n;i++){
if(y[i] <= mid){
ld l = x[i] - sqrt(mid * mid - y[i] * y[i]);
ld r = x[i] + sqrt(mid * mid - y[i] * y[i]);
if(l <= d)d = max(d, r);
}
}
if(m <= d)hi = mid;
else lo = mid;
}
cout<<setprecision(12)<<fixed<<lo<<'\n';
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin>>t;
while (t--)orz();
}
# | 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... |