제출 #1248887

#제출 시각아이디문제언어결과실행 시간메모리
1248887PokemonMasterBalloons (CEOI11_bal)C++20
10 / 100
294 ms6696 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define cantinue continue
double fan(double xi,double xj,double rj)
{
    return (xi-xj)*(xi-xj)/(4*rj);
}
signed main()
{
    int n;
    cin>>n;
    vector <double> x(n+1);
    vector <double> r(n+1);
    for(int i=1;i<=n;i++)cin>>x[i]>>r[i];
    vector <double> rad(n+1);
    vector <int> stk;
    for(int i=1;i<=n;i++)
    {
        rad[i]=r[i];
        int sz=stk.size()-1;
        while(stk.size()>0 && rad[stk[sz]]<=min(rad[i],fan(x[i],x[stk[sz]],rad[stk[sz]])))
        {
            rad[i]=min(rad[i],(x[i]-x[sz])*(x[i]-x[sz])/(4*rad[sz]));
            stk.pop_back();
            sz--;
        }
        if(stk.size())
        {
            int sz=stk[stk.size()-1];
            rad[i]=min(rad[i],(x[i]-x[sz])*(x[i]-x[sz])/(4*rad[sz]));
        }
        stk.push_back(i);
    }
    for(int i=1;i<=n;i++)cout<<fixed<<setprecision(3)<<rad[i]<<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...