제출 #1202330

#제출 시각아이디문제언어결과실행 시간메모리
1202330SSKMFBalloons (CEOI11_bal)C++20
20 / 100
89 ms7236 KiB
#include <bits/stdc++.h>
using namespace std;

pair <int , long double> candidati[200001];

inline long double Necesar (pair <int , long double>& anterior , const int actual)
{
    return 1LL * (actual - anterior.first) * (actual - anterior.first) / (4 * anterior.second);
}

int main ()
{
    ios :: sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int lungime;
    cin >> lungime;

    cout << fixed << setprecision(3);

    for (int indice = 1 ; indice <= lungime ; indice++)
    {
        int locatie , limita;
        cin >> locatie >> limita;

        while (candidati[0].first > 1 && Necesar(candidati[candidati[0].first - 1] , locatie) <= Necesar(candidati[candidati[0].first] , locatie))
            { candidati[0].first--; }

        long double raza = limita;
        if (candidati[0].first)
            { raza = min(raza , Necesar(candidati[candidati[0].first] , locatie)); }

        candidati[++candidati[0].first] = {locatie , raza};
        cout << raza << '\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...