제출 #1100296

#제출 시각아이디문제언어결과실행 시간메모리
1100296michifiedBalloons (CEOI11_bal)C++17
100 / 100
493 ms6636 KiB
#include <bits/stdc++.h>
#define ll long long
#define db double
#define lid id * 2 + 1
#define rid id * 2 + 2
using namespace std;

const ll mod = 1e9 + 7;

db bestR(db x1, db r1, db x2, db r2) {
    return min((x2 - x1) * (x2 - x1) / (4 * r1), r2);
}

int main() {
    // ifstream cin("balancing.in");
    // ofstream cout("balancing.out");

    int n, i;
    cin >> n;
    vector<db> x(n), r(n);
    for (i = 0; i < n; i++) cin >> x[i] >> r[i];
    vector<db> ans(n);
    stack<int> st;
    ans[0] = r[0];
    st.push(0);
    for (i = 1; i < n; i++) {
        db res = r[i];
        while (not st.empty()) {
            res = min(res, bestR(x[st.top()], ans[st.top()], x[i], r[i]));
            if (res >= ans[st.top()]) st.pop();
            else break;
        }
        ans[i] = res;
        st.push(i);
    }
    cout << fixed << setprecision(3);
    for (i = 0; i < n; i++) cout << ans[i] << endl;
    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...