Submission #1215247

#TimeUsernameProblemLanguageResultExecution timeMemory
1215247newsboyBalloons (CEOI11_bal)C++20
100 / 100
99 ms8036 KiB
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <set>
#include <map>
#include <numeric>
#include <iomanip>
#include <unordered_set>
#include <unordered_map>
#include <bitset>
#include <queue>
#include <deque>
#include <stack>
#include <cmath>
#include <tuple>
#include <cassert>
#include <array>
#include <list>
#include <random>
#include <initializer_list>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = double;
constexpr ll INF = 1E18;
constexpr ll MIN = -INF;
constexpr ll MAX = INF;
constexpr ll N = 1E4 + 10;

ld get(pair<ld, ld>& a, ll x) {
    return pow(abs(a.first) - x, 2) / (4 * a.second);
}

void solve() {
    ll n;
    cin >> n;
    vector<ll> x(n), r(n);
    for (ll i = 0; i < n; ++i) {
        cin >> x[i] >> r[i];
    }
    stack<pair<ld, ld>> st;
    vector<ld> ans(n);
    for (ll i = 0; i < n; ++i) {
        ld curr = r[i];
        while (!st.empty()) {
            auto last = st.top();
            curr = min(curr, get(last, x[i]));
            if (curr < last.second) {
                break;
            }
            else {
                st.pop();
            }
        }
        st.push({ x[i], curr });
        ans[i] = curr;
    }
    for (ll i = 0; i < n; ++i) {
        cout << ans[i] << '\n';
    }
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout << fixed << setprecision(10);
    int t = 1;
    /*cin >> t;*/
    while (t--) {
        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...