Submission #1221200

#TimeUsernameProblemLanguageResultExecution timeMemory
1221200boclobanchatBalloons (CEOI11_bal)C++20
20 / 100
1629 ms2084 KiB
#include<bits/stdc++.h> using namespace std; struct comp { bool operator()(pair<double,double> a,pair<double,double> b) { return a.first+a.second<b.first+b.second; } }; priority_queue< pair<double,double>,vector< pair<double,double> >,comp > pq; double dis(double x1,double y1,double x2,double y2) { return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } double get(pair<double,double> p,double X,double R) { double lt=0,rt=R,ans=0; while(rt-lt>1e-5) { double mid=(lt+rt)/2; if(dis(p.first,p.second,X,mid)>=mid+p.second) lt=ans=mid; else rt=mid; } return ans; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; cout<<setprecision(3)<<fixed; for(int i=1;i<=n;i++) { long long X,R; cin>>X>>R; if(i==1) { cout<<R<<"\n"; pq.push({X,R}); } else { priority_queue< pair<double,double>,vector< pair<double,double> >,comp > res=pq; double ans=R; while(!res.empty()) ans=min(ans,get(res.top(),X,R)),res.pop(); cout<<ans<<"\n"; pq.push({X,ans}); if(pq.size()>22) pq.pop(); } } }
#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...