제출 #1270857

#제출 시각아이디문제언어결과실행 시간메모리
1270857sopaipillaBalloons (CEOI11_bal)C++20
10 / 100
110 ms11340 KiB
#include <bits/stdc++.h>
//#define int long long
#define pii pair<long double, long double>
#define fst first
#define snd second
#define endl "\n"
using namespace std;

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

    int n;
    cin >> n;
    pii p[n];
    long double ans[n];
    for(int i=0; i<n; ++i) {
        auto &[x,y] = p[i];
        cin >> x >> y;
        ans[i]=y;
    }
    
    stack<pii> mnstk;
    long double aux;
    for(int i=0; i<n; ++i) {
        while(!mnstk.empty()) {
            auto [x,y] = mnstk.top();
            if(p[i].snd<y) break;
            
            aux = (p[i].fst-x)*(p[i].fst-x);
            ans[i] = min(ans[i], aux/(4*y));
            mnstk.pop();
        }
        if(!mnstk.empty()) {
            auto [x,y] = mnstk.top();
            aux = (p[i].fst-x)*(p[i].fst-x);
            ans[i] = min(ans[i], aux/(4*y));
        }
        mnstk.push({p[i].fst,ans[i]});
    }
    
    for(long double &a : ans) cout << fixed << setprecision(3) << a << endl;
}
#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...