Submission #211450

#TimeUsernameProblemLanguageResultExecution timeMemory
211450Andrei_CotorBalloons (CEOI11_bal)C++11
100 / 100
306 ms8844 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=rmax;
        while(!Q.empty())
        {
            long double xx=Q.back().first;
            long double rr=Q.back().second;

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

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

        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...