#include <bits/stdc++.h>
#define ld long double
using namespace std;
struct range{
ld x,y,l,r;
};
ld special_inters(ld x1,ld y1,ld x2,ld y2){
return (x1*x1-x2*x2+y1*y1-y2*y2)/(2*(x1-x2));
}
vector<range>range;
void get_range(){
int n,len;
cin>>n>>len;
int last_x=-1000000001;
int i;
for(i=1;i<=n;++i){
int x,y;
cin>>x>>y;
if(x!=last_x){
last_x=x;
while(!range.empty()){
auto [px,py,l,r]=range.back();
ld inters=special_inters(x,y,px,py);
if(r<=inters)
break;
if(inters<=l)
range.pop_back();
else{
range.back().r=inters;
break;
}
}
if(range.empty())
range.push_back({(ld)x,(ld)y,0,(ld)len});
else
range.push_back({(ld)x,(ld)y,range.back().r,(ld)len});
}
}
}
ld dist(ld x1,ld y1,ld x2,ld y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
ld solve(){
ld mxm=0;
for(auto [x,y,l,r] : range){
ld dst=dist(x,y,l,0);
if(mxm<dst)
mxm=dst;
dst=dist(x,y,r,0);
if(mxm<dst)
mxm=dst;
}
return mxm;
}
int main()
{
get_range();
cout<<fixed<<setprecision(6)<<solve();
return 0;
}
# | 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... |