Submission #211447

#TimeUsernameProblemLanguageResultExecution timeMemory
211447Andrei_CotorBalloons (CEOI11_bal)C++11
20 / 100
284 ms4676 KiB
#include<iostream>
#include<queue>
#include<iomanip>

using namespace std;

long double getrad(long double x, long double xx, long double rr)
{
    long double r=((x-xx)*(x-xx))/(4*rr);
    return r;
}

deque<pair<long double,long double> > Q;

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

    int n;
    cin>>n;

    for(int i=1; i<=n; i++)
    {
        long double x,rmax;
        cin>>x>>rmax;

        long double r=-1.0;
        while(!Q.empty())
        {
            long double xx=Q.back().first;
            long double rr=Q.back().second;

            r=min(rmax,getrad(x,xx,rr));

            if(r>rr)
                Q.pop_back();
            else
                break;
        }

        if(r==-1.0)
            r=rmax;

        cout<<setprecision(3)<<fixed<<r<<"\n";
        Q.push_back({x,r});
    }
    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...