Submission #1281200

#TimeUsernameProblemLanguageResultExecution timeMemory
1281200minhphanBalloons (CEOI11_bal)C++20
30 / 100
173 ms4392 KiB
#include <bits/stdc++.h>

using namespace std;

double calcRadius(const pair<int, double> &a, const double bx) {
    const double dx = bx-a.first;
    return dx*dx/(4*a.second);
}

int main() {

    int n;
    cin >> n;

    stack<pair<int, double>> stack;

    vector<double> finalRadius(n);

    for (int i = 0; i<n; i++) {
        double x, r;
        cin >> x >> r;

        double maxR = r;

        while (!stack.empty()) {
            pair<int, double> last = stack.top();
            double radius = calcRadius(last, x);

            maxR = min(maxR, radius);

            if (radius >= last.second) {
                stack.pop();
                continue;
            }

            break;
        }

        stack.emplace(x, maxR);
        finalRadius[i] = maxR;
    }

    cout << fixed << setprecision(3);

    for (int i = 0; i<n; i++) {
        cout << finalRadius[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...