#include<bits/stdc++.h>
using namespace std;
#define int long long
#define cantinue continue
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()>1 && (x[i]-x[stk[sz]])*(x[i]-x[stk[sz]])<=4*rad[stk[sz]]*rad[i])stk.pop_back();
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |