제출 #1241961

#제출 시각아이디문제언어결과실행 시간메모리
1241961MinhKienBalloons (CEOI11_bal)C++20
100 / 100
120 ms3472 KiB
#include <iostream>
#include <math.h>
#include <stack>

using namespace std;

struct bb {
    long double x, r;

    bb () {}
    bb (long double X, long double R) {
        x = X;
        r = R;
    }
};

int n;
bb k;
stack <bb> st, tmp;

long double dis(bb A, bb B) {
    return sqrt((A.x - B.x) * (A.x - B.x) + (A.r - B.r) * (A.r - B.r));
}

long double Find(bb kt) {
    return (kt.x - k.x) * (kt.x - k.x) / (4.0 * kt.r);
}

int main() {
    cin.tie(0); cout.tie(0);
    ios_base::sync_with_stdio(false);

    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> k.x >> k.r;

        long double ans = k.r;
        while (!st.empty()) {
            ans = min(ans, Find(st.top()));
            if (ans >= st.top().r) {
                st.pop();
                continue;
            }
            break;
        }

        st.push(bb(k.x, ans));
        printf("%.10Lf\n", ans);
    }
    for(int i=1;i<=1e3;i++) {
        for(int j=1;j<=1e3;j++) {
            for(int k=1;k<=1e3;k++) 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...