Submission #485101

#TimeUsernameProblemLanguageResultExecution timeMemory
485101dz001Balloons (CEOI11_bal)C++11
10 / 100
407 ms6580 KiB
#include <bits/stdc++.h> using namespace std; #define sqr(x) (x)*(x) const double eps=1e-3; const int N=2e5+10; double ans[N]; long long x[N],R[N]; int n; double get(int i,int j){ double l=0,r=R[i],kq=-1; for(int k=0;k<32;++k){ double m=(l+r)/2.; double dist=sqr(m-ans[j])+sqr(x[j]-x[i]); if(sqr(m+ans[j])-dist<eps)kq=m,l=m; else r=m; } return kq; } signed main() { ios::sync_with_stdio(NULL); cin.tie(nullptr); cout.precision(3); cout<<fixed; cin>>n; for(int i=0;i<n;++i)cin>>x[i]>>R[i]; ans[0]=R[0]; for(int i=1;i<n;++i){ for(int j=max(0,i-10);j<i;++j){ double tmp=get(i,j); // cout<<tmp<<endl; if(ans[i]>=tmp||ans[i]==0)ans[i]=tmp; } } for(int i=0;i<n;++i)cout<<ans[i]<<'\n'; }
#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...