제출 #1185885

#제출 시각아이디문제언어결과실행 시간메모리
1185885matus192Balloons (CEOI11_bal)C++20
0 / 100
69 ms3648 KiB
#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>

using namespace std;
using namespace __gnu_pbds;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> oset;

#define REP(i, a, b) for (ll i = (a); i < (b); i++)
#define FOR(i, x) for (auto &i : x)
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(), x.end()
#define IMAX INT_MAX
#define IMIN INT_MIN
#define LMAX LONG_LONG_MAX
#define LMIN LONG_LONG_MIN
#define MOD 1000000007
#define SIR 1000000009

vll x_coords, limits;

long double maximum(pll s, ll idx) {
    long double len = (x_coords[idx] - s.ss);
    long double men = 4*s.ff;
    return ((len)/(men))*len;
}

int main() {
    ll n;
    cin >> n;
    x_coords = vll(n);
    limits = vll(n);
    REP(i, 0, n) {
        cin >> x_coords[i] >> limits[i];
    }

    stack<pll> s;
    REP(i, 0, n) {
        long double rad = limits[i];
        if (!s.empty()) rad = min(rad, maximum(s.top(), i));
        while (!s.empty() && rad >= s.top().ff) {
            s.pop();
            rad = min(rad, maximum(s.top(), i));
        }
        cout << fixed << setprecision(3);
        cout << rad << '\n';
        s.push({rad, x_coords[i]});
    }

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