| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1295248 | lambd47 | Balloons (CEOI11_bal) | C11 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#define ll long long
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(), (v).end()
#define L(i, j, k) for(int i = (j); i <= (k); ++i)
#define R(i, j, k) for(int i = (j); i >= (k); --i)
using namespace std;
void solve() {
int n;cin>>n;
cout<<fixed<<setprecision(6);
vector<double> pos(n);
vector<double> ans(n);
L(i,0,n-1)cin>>pos[i]>>ans[i];
vector<int> st;
auto calc=[&](int a, int b)->double{
return ((pos[a]-pos[b])*(pos[a]-pos[b]))/(4*ans[a]);
};
L(i,0,n-1){
while(!st.empty()){
ans[i]=min(ans[i],calc(st.back(),i));
if(ans[i]>=ans[st.back()]){
st.pop_back();
}else{
break;
}
}
st.push_back(i);
}
for(auto a:ans)cout<<a<<"\n";
}
int main(){
solve();
}
