제출 #1338003

#제출 시각아이디문제언어결과실행 시간메모리
1338003liminhaBalloons (CEOI11_bal)C++20
100 / 100
224 ms9260 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<double,double>> st;
    for(int i=0;i<n;i++){
        double cur_x = balloon[i].fir;
        double cur_r = balloon[i].sec;

        while(!st.empty()){
            double x = st.top().first;
            double r = st.top().second;
            
            double dx = abs(cur_x-x);

            cur_r = min(cur_r,dx*dx/(4.0*r));

            if(cur_r <= r){
                break;
            } else {
                st.pop();
            }
        }

        
        ans[i] = cur_r;
        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...