제출 #1321064

#제출 시각아이디문제언어결과실행 시간메모리
1321064aaaaaaaaBalloons (CEOI11_bal)C++20
100 / 100
102 ms5008 KiB
#include <bits/stdc++.h>
using namespace std;
double mx_radius(pair<double, double> prev, double bx){
    return (double) (bx - prev.first) * (bx - prev.first) / (4.000 * prev.second);
}
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(nullptr); cout.tie(nullptr);
    int n;
    cin >> n;
    vector<double> x(n + 1), r(n + 1);
    stack<pair<double, double>> stk;
    cout << fixed << setprecision(3);
    for(int i = 1; i <= n; ++i){
        cin >> x[i] >> r[i];
    }
    for(int i = 1; i <= n; ++i){
        double mxr = r[i];
        while((int) stk.size()){
            auto lst = stk.top();
            double lstr = mx_radius(lst, x[i]);
            mxr = min(mxr, lstr);
            if(mxr >= lst.second){
                stk.pop();
            }else{
                break;
            }
        }
        stk.push({x[i], mxr});
        cout << mxr << "\n";
    }
	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...