Submission #1337999

#TimeUsernameProblemLanguageResultExecution timeMemory
1337999liminhaBalloons (CEOI11_bal)C++20
0 / 100
258 ms8912 KiB
#include <bits/stdc++.h>
using namespace std;

#define __ ios::sync_with_stdio(0); cin.tie(NULL);
#define pb push_back
#define int long long
#define rep(i,n) for(int i=0;i<n;i++)
#define all(x) x.begin(),x.end()
#define fir first
#define sec second
const int mxn = 2e5;
const int mod = 998244353;


void solve(){
    int n; cin >> n;
    vector<pair<int,int>> balloon(n);
    for(int i=0;i<n;i++){
        cin >> balloon[i].fir >> balloon[i].sec;
    }


    vector<double> ans(n);

    stack<pair<int,double>> st;
    for(int i=0;i<n;i++){
        if(st.empty()){
            ans[i] = balloon[i].sec;
            st.push(balloon[i]);
            continue;
        }

        int cur_x = balloon[i].fir;
        int cur_r = balloon[i].sec;
        while(!st.empty()){
            int x = st.top().first;
            int r = st.top().second;
            
            int dx = abs(cur_x-x);
            int dr = abs(cur_r-r);

            if(4*cur_r*dr <= dx*dx){
                ans[i] = min((double)cur_r,dx*dx/(4.0*r));
                break;
            } else {
                st.pop();
            }
        }
        
        st.push({cur_x,ans[i]});
        
    }

    cout << fixed << setprecision(10);
    for(auto u : ans) cout << u << endl;

}

signed main(){ __ 
    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...