This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include<bits/stdc++.h>
#define pb push_back
#define f first
#define s second
typedef long long ll;
typedef long double ld;
using namespace std;
int n,l;
vector<pair<int,int>> pkt;
bool spr(long double rad);
long double bin(ld lo,ld hi)
{
for(int i=0;i<40;i++)
{
ld mid=(lo+hi)/2;
if(spr(mid))hi=mid; else lo=mid;
}
return lo;
}
int main()
{ ios_base::sync_with_stdio();
cin.tie();
cin>>n>>l;
for(int i=0;i<n;i++)
{int a,b; cin>>a>>b;
pkt.pb({a,b});
}
cout<<fixed<<setprecision(4)<<bin(0,(ld)(2*l));
return 0;
}
bool spr(ld rad){
vector<pair<ld,ld>> pts={};
for(auto p : pkt)
{
ld x=(ld)p.f,y=(ld)p.s;
if(rad<abs(y))continue;
ld del=(ld)sqrt(rad*rad-y*y);
ld x1=x-del,x2=x+del;
pts.pb({x1,x2});
}
if(pts.empty())return 0;
ld curr_min=1.5e9+1,curr_max=-1.5e9-1;
for(auto i : pts)
{ ld a=i.f,b=i.s; if(b<0)continue;
if(curr_min==1.5e9+1&&curr_max==-1.5e9-1){curr_min=a; curr_max=b; continue;}
if(a<=curr_max)curr_max=max(curr_max,b);
if(b>=curr_min)curr_min=min(curr_min,a);
}
if(curr_min>0||curr_max<(ld)l)return 0;
return 1;
}
# | 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... |