Submission #1100296

#TimeUsernameProblemLanguageResultExecution timeMemory
1100296michifiedBalloons (CEOI11_bal)C++17
100 / 100
493 ms6636 KiB
#include <bits/stdc++.h> #define ll long long #define db double #define lid id * 2 + 1 #define rid id * 2 + 2 using namespace std; const ll mod = 1e9 + 7; db bestR(db x1, db r1, db x2, db r2) { return min((x2 - x1) * (x2 - x1) / (4 * r1), r2); } int main() { // ifstream cin("balancing.in"); // ofstream cout("balancing.out"); int n, i; cin >> n; vector<db> x(n), r(n); for (i = 0; i < n; i++) cin >> x[i] >> r[i]; vector<db> ans(n); stack<int> st; ans[0] = r[0]; st.push(0); for (i = 1; i < n; i++) { db res = r[i]; while (not st.empty()) { res = min(res, bestR(x[st.top()], ans[st.top()], x[i], r[i])); if (res >= ans[st.top()]) st.pop(); else break; } ans[i] = res; st.push(i); } cout << fixed << setprecision(3); for (i = 0; i < n; i++) cout << ans[i] << endl; 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...