# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1225585 | jakeob77 | Balloons (CEOI11_bal) | C++17 | 0 ms | 0 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,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();
}