Submission #1301572

#TimeUsernameProblemLanguageResultExecution timeMemory
1301572stas-badziBalloons (CEOI11_bal)C++20
20 / 100
133 ms4420 KiB
#include <iomanip> #include <ios> #include <iostream> #include <stack> #include <utility> #define sqi(x)((x)*(long long)(x)) #define sqd(x)((x)*(long double)(x)) //#define overlapxr(x1,r1,x2,r2) (sqi(x1-x2)+sqi(r1-r2)<sqd(r1+r2)) #define overlapxr(x1,r1,x2,r2) (sqi(x1-x2)<4*(r1)*(r2)) #define overlap1(a,x2,r2) overlapxr(a.first,a.second,x2,r2) #define overlap(a,b) overlapxr(a.first,a.second,b.first,b.second) int main() { std::cin.tie(0)->sync_with_stdio(0); int n,x,r; std::cin >> n >> x >> r; std::stack<std::pair<int, long double>> st; std::cout << r << ".000" << std::fixed << std::setprecision(3); st.push({x,r}); for (int i=1;i<n;++i) { std::cin >> x >> r; long double maxr = r; while (!st.empty()) { auto t = st.top(); long double b=0; while (maxr-b>(long double)0.0001) { auto m = (maxr+b)/2; if (overlap1(t,x,m)) maxr+=(b-maxr)/2; else b+=(maxr-b)/2; } if ((maxr=b)<t.second) break; st.pop(); } st.emplace(x,maxr); std::cout << '\n' << maxr; } }
#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...