Submission #1266727

#TimeUsernameProblemLanguageResultExecution timeMemory
1266727tritranminh2808Balloons (CEOI11_bal)C++20
60 / 100
1923 ms22368 KiB
#include <bits/stdc++.h> // #define int long long using namespace std; int x[200005],r[200005]; long double ans[200005]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for(int i=1;i<=n;i++) cin>> x[i] >> r[i]; // stack <int> st; set<pair <long double, int > > st; ans[1]=r[1]*1.0; st.insert({1.0*(r[1]+x[1]),1}); for(int i=2;i<=n;i++){ long double cur=r[i]*1.0; vector <pair <long double , int > > xet; int dd=30; while(dd--&&!st.empty()){ xet.push_back(*st.rbegin()); st.erase(xet.back()); } for(auto k:xet){ long double xj=x[k.second],rj=ans[k.second]; long double ri=1.0*(x[i]-xj)*(x[i]-xj)/(4.0*rj); cur=min(cur,ri); } ans[i]=cur; st.insert({1.0*(ans[i]+x[i]),i}); for(auto j:xet) st.insert(j); } for(int i=1;i<=n;i++) cout << fixed << setprecision(3) << ans[i] << "\n"; 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...