Submission #1262846

#TimeUsernameProblemLanguageResultExecution timeMemory
1262846wenbangBalloons (CEOI11_bal)C++20
100 / 100
113 ms5060 KiB
#include <iomanip>
#include <iostream>
#include <stack>
#include <vector>

#ifdef LOCAL
#include "print.h"
#else
template <typename... Args> inline void print(const Args&... args) {}
inline void                             newline() {}
#endif

using ll = long long;
using ld = long double;
#define endl                       '\n'
#define FOR1(n)                    for (int _ = 0; _ < n; _++)
#define FOR2(i, n)                 for (int i = 0; i < n; i++)
#define FOR3(i, a, b)              for (int i = a; i < b; i++)
#define overload3(a, b, c, d, ...) d
#define FOR(...)                   overload3(__VA_ARGS__, FOR3, FOR2, FOR1)(__VA_ARGS__)

using namespace std;

inline ld rad(pair<ld, ld> a, ld b) {
    return (a.first - b) * (a.first - b) / (4 * a.second);
}

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
#endif

    int n;
    cin >> n;
    vector<ld>            radii(n);
    stack<pair<ld, ld>> check;
    FOR(i, n) {
        ld x, r;
        cin >> x >> r;
        ld maxRad = r;
        while (!check.empty()) {
            pair<ld, ld> top = check.top();
            maxRad           = min(maxRad, rad(top, x));
            if (maxRad >= top.second) {
                check.pop();
            }
            else {
                break;
            }
        }
        radii [i] = maxRad;
        check.push({x, maxRad});
    }
    cout << fixed << setprecision(3);
    for (const auto& r: radii) {
        cout << r << endl;
    }
}
#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...