답안 #1094843

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1094843 2024-09-30T16:13:44 Z Kodik Balloons (CEOI11_bal) C++17
10 / 100
323 ms 7044 KB
#include <bits/stdc++.h>
using namespace std;
#define ss second
#define ff first
typedef long long ll;
typedef long double ld;
#define int ll




bool check(ld nr, ld lr, ld nx, ld lx){
    ld radius = abs(nr-lr);
    ld distance = abs(nx-lx);
    ld pyt = lr + nr;
    return (radius*radius + distance*distance - pyt*pyt ) >= ld(1e-4);
}


signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin >> n;
    vector<ld> answer(n);
    stack<pair<ld,ld>> st;
    for(int i = 0; i < n; ++i){
        ld cor, mr; 
        cin >> cor >> mr;
        if(st.empty()){
            answer[i] = mr;
            st.push({mr,cor});
        }else{
            while(true){
                auto &[lr, lx] = st.top();
                ld l = 0, r = mr;
                while(r-l>1e-4){
                    ld mid = l + (r-l)/2;
                    if(check(mid, lr, cor, lx)){
                        l = mid;
                    }else{
                        r = mid;
                    }

                }
                mr = l;
                if(l>lr){
                    st.pop();
                    mr = l;
                    if(st.empty()){
                        answer[i] = mr;
                        st.push({mr,cor});
                        break;
                    }
                }else{
                    st.push({mr,cor});
                    answer[i] = mr;
                    break;
                }
            }
        }
    }
    for(int i = 0; i < n; ++i){
        cout << answer[i] << '\n';
    }
    return 0;   
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 452 KB 1st numbers differ - expected: '247294217.0000000000', found: '247294000.0000000000', error = '217.0000000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 345th numbers differ - expected: '215.0530000000', found: '215.0370000000', error = '0.0160000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 348 KB 114th numbers differ - expected: '39.0180000000', found: '39.0157000000', error = '0.0023000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 36 ms 1108 KB 196th numbers differ - expected: '100.7250000000', found: '100.7170000000', error = '0.0080000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 92 ms 2572 KB 251st numbers differ - expected: '15123.0020000000', found: '15123.0000000000', error = '0.0020000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 181 ms 4176 KB 285th numbers differ - expected: '7629.0020000000', found: '7629.0000000000', error = '0.0020000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 204 ms 4668 KB 511th numbers differ - expected: '4494.0050000000', found: '4494.0100000000', error = '0.0050000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 270 ms 5756 KB 164th numbers differ - expected: '1698.0020000000', found: '1698.0000000000', error = '0.0020000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 323 ms 7044 KB 248th numbers differ - expected: '2694.0020000000', found: '2694.0000000000', error = '0.0020000000'
2 Halted 0 ms 0 KB -