#include<bits/stdc++.h>
using namespace std;
vector< pair<double,double> > vi;
double get(pair<double,double> p,double X,double R)
{
	return min(R,(p.first-X)*(p.first-X)/p.second/4);
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	long long X,R;
    	cin>>X>>R;
    	if(i==1)
    	{
    		cout<<R<<"\n";
    		vi.push_back({X,R});
		}
		else
		{
			double ans=R;
			for(auto v:vi) ans=min(ans,get(v,X,ans));
			cout<<setprecision(6)<<fixed<<ans<<"\n";
			while(!vi.empty()&&vi.back().second<=ans) vi.pop_back();
			vi.push_back({X,ans});
		}
	}
}
| # | 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... |