Submission #1266897

#TimeUsernameProblemLanguageResultExecution timeMemory
1266897datluong_04Balloons (CEOI11_bal)C++20
100 / 100
86 ms11336 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define maxn 200005
#define FOR(i , a , b) for(int i = a ; i <= b; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

long double x[maxn] , r[maxn] , R[maxn];

int main(){
    FAST;
    int n;
    cin >> n;
    FOR(i , 1 , n){
        ll _x , _r;
        cin >> _x >> _r;
        x[i] = (long double) _x;
        r[i] = (long double) _r;
    }
    stack<int> st;
    FOR(i , 1 , n){
        long double Ri = r[i]; // ban kinh toi da ma bong bong htai co the bom duoc
        while(!st.empty()){
            int j = st.top();
            long double dx = (x[i] - x[j]);
            long double cand = (dx * dx) /( 4 * R[j]);
            if(Ri > cand) Ri = cand; // Ri = min(Ri , dx^2 / 4Rj);
            if(Ri > R[j]) st.pop();
            else break;
        }
        R[i] = Ri;
        st.push(i);
    }

    FOR(i , 1 , n) cout << fixed << setprecision(3) << R[i] << "\n";
}
#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...