Submission #1287851

#TimeUsernameProblemLanguageResultExecution timeMemory
1287851chithanhnguyenBalloons (CEOI11_bal)C++20
100 / 100
120 ms10916 KiB
#include <bits/stdc++.h>
using namespace std;

#define ld long double

struct Circle{
    int x; ld r;
};

const int MAXN = 2e5 + 5;
int n;
Circle circles[MAXN];

void init() {
    cin >> n;
    for (int i = 1; i <= n; ++i)
        cin >> circles[i].x >> circles[i].r;
}

void solve() {
    vector<Circle> st;

    for (int i = 1; i <= n; ++i) {
        ld rad = circles[i].r;

        while (!st.empty()) {
            Circle cur = st.back();

            ld cur_rad = (ld)1.0 * (cur.x - circles[i].x) * (cur.x - circles[i].x) / (4.0 * cur.r);
            rad = min(rad, cur_rad);

            if (rad >= cur.r) {
                st.pop_back();
            }
            else {
                break;
            }
        }

        cout << fixed << setprecision(16);
        cout << rad << '\n';
        st.push_back({circles[i].x, rad});
    }
}

signed main() {
    #ifdef NCTHANH
    freopen("input.txt", "r", stdin);
    #endif // NCTHANH
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr); cout.tie(nullptr);

    init();
    solve();

    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...