Submission #1225586

#TimeUsernameProblemLanguageResultExecution timeMemory
1225586jakeob77Balloons (CEOI11_bal)C++17
100 / 100
239 ms5440 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ins insert
//cout<<fixed<<setprecision(3); 3 decimalke brez fixed pa 3 zanesljiva mesta
const int MAXN=1e6+3;
const long long linf=1e18;
const int inf=1e9;
const int mod=998244353;;


void solve(){
    int n;cin>>n;
    stack<pair<int,long double>>last;vector<long double>radij;
    for(int i=0;i<n;i++){
        long double x,r;cin>>x>>r;
        auto calc=[](pair<long double,long double>par,long double temp)->long double{
            return (par.first-temp)*(par.first-temp)/(4*par.second);
        };
        long double max_r=r;
        while(!last.empty()){
            pair<long double,long double>l=last.top();
            long double last_max_r=calc(l,x);
            max_r=min(max_r,last_max_r);
            if(max_r>=l.second){
                last.pop();
                continue;
            }
            else break;
        }
        last.push({x,max_r});
        radij.pb(max_r);
    }
    
    
    for(auto el:radij){cout<<fixed<<setprecision(4)<<el<<endl;}
}  
int main(){
    std::ios::sync_with_stdio(false);
	std::cin.tie(NULL); 
    int t=1;
    while(t--) solve();
    
}

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