Submission #1299791

#TimeUsernameProblemLanguageResultExecution timeMemory
1299791polishprogrammerBalloons (CEOI11_bal)C++20
100 / 100
271 ms4400 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define lld long double
#define fi first
#define se second
#define pb push_back
lld promien(pair<lld, lld> okr, pair<lld, lld> nowy) {
    lld xs = okr.fi, rs = okr.se, x = nowy.fi, r = nowy.se;
    return min((x-xs)*(x-xs)/(4*rs), r);
}
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    lld r, x;
    cin >> n;
    vector<pair<lld, lld>> okr;
    for (int i = 0; i < n; i++) {
        cin >> x >> r;
        while (!okr.empty() and promien(okr.back(), {x, r}) >= okr.back().se) {
            r = min(r, promien(okr.back(), {x, r}));
            okr.pop_back();
        }
        if (!okr.empty()) r = min(r, promien(okr.back(), {x, r}));
        cout << fixed << setprecision(3) << r << endl;
        okr.pb({x, r});
    }
}

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