Submission #1225451

#TimeUsernameProblemLanguageResultExecution timeMemory
1225451AlgorithmWarriorMobile (BOI12_mobile)C++20
0 / 100
514 ms66208 KiB
#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 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...