Submission #1331813

#TimeUsernameProblemLanguageResultExecution timeMemory
1331813WarinchaiBalloons (CEOI11_bal)C++20
100 / 100
110 ms5100 KiB
#include<bits/stdc++.h>
#define int long double
using namespace std;

int g(pair<int,int>a,pair<int,int>b){
    return (a.first-b.first)*(a.first-b.first)/(4.0*b.second);
}

int rans[200005];

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    deque<pair<int,int>>s;
    for(int32_t i=1;i<=n;i++){
        int a,b;cin>>a>>b;
        pair<int,int>cur={a,b};
        int r=b;
        while(!s.empty()){
            auto x=s.back();
            r=min(r,g(cur,x));
            if(r>=x.second)s.pop_back();
            else break;
        }
        s.push_back({a,r});
        rans[i]=r;
        //cerr<<r<<"\n";
        //while(s.size()>1&&g(cur,s[s.size()-2])<=g(cur,s[s.size()-1]))
    }
    for(int32_t i=1;i<=n;i++)cout<<fixed<<setprecision(3)<<rans[i]<<"\n";
}
#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...