#include<bits/stdc++.h>
using namespace std;
#define ld long double
int main(){
    cout<<fixed<<setprecision(3);
    int n; cin>>n;
    vector<ld> ans(n);
    stack<pair<ld,ld>> ms;
    for(auto i = 0; i < n; i++){
        ld x,r; cin>>x>>r;
        ld r_ = r;
        while(!ms.empty()){
            pair<ld,ld> l = ms.top();
            ld d = (((ld)(x - l.first)*(ld)(x - l.first))/((ld)4*(ld)(l.second)));
            r_ = min(d,r_);
            if(d >= l.second) ms.pop();
            else break;
        }
        ms.push({x,r_});
        ans[i] = ms.top().second;
    }
    for(auto&r:ans) cout<<r<<'\n';
}
| # | 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... |