제출 #1345492

#제출 시각아이디문제언어결과실행 시간메모리
1345492duonghongducazBalloons (CEOI11_bal)C++17
100 / 100
72 ms8244 KiB
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<stack>
#include<vector>
using namespace std;
struct Ballon{
    long double x;
    long double r;
};

void Input(int& n, vector<Ballon>& ballons){
    cin >> n;
    ballons.resize(n+1);
    for(int i=0;i<n;i++){
        cin >> ballons[i].x >> ballons[i].r;
    }
}

double calculate_r2(long double x1, long double x2, long double r){
    return (x1-x2)*(x1-x2)/(4.0*r);
}

void processing(int n, vector<Ballon>& ballons){
    stack<pair<long double, long double>> s;
    for(int i=0;i<n;i++){
        long double current_r = ballons[i].r;
        while(!s.empty()){
            pair<long double, long double> last_circus = s.top();
            long double limit = calculate_r2(last_circus.first, ballons[i].x, last_circus.second);
            current_r = min(current_r, limit);
            if(current_r>=last_circus.second){
                s.pop();
                continue;
            }
            else{
                break;
            }
        }
        s.push({ballons[i].x, current_r});
        ballons[i].r = current_r;
    }
    for(int i=0;i<n;i++){
        cout << fixed << setprecision(3) << ballons[i].r << "\n";
    }
}


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    vector<Ballon> ballons;
    Input(n, ballons);
    processing(n, ballons);
    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...