#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define dbg(x) cout << #x << " = " << (x) << endl;
const int INF = 1e18;
const int MAXN = 1e6 + 10;
const int MOD = 1e9 + 7;
double calc_r(pair<double, double> prev, double x){
return (prev.first - x) * (prev.first - x) / (4 * prev.second);
}
int32_t main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
//freopen("input.in", "r", stdin);
//freopen("input.out", "w", stdout);
int n; cin >> n;
vector<double> ans(n);
stack<pair<double, double>> s;
for(int i = 0; i < n; ++i){
double x, r; cin >> x >> r;
double max_r = r;
while(!s.empty()){
pair<double, double> prev = s.top();
double last_r = calc_r(prev, x);
max_r = min(max_r, last_r);
if(max_r >= prev.second){
s.pop();
continue;
}
else break;
}
s.push({x, max_r});
ans[i] = max_r;
}
cout<<fixed<<setprecision(3);
for(double &r : ans) cout<<r<<endl;
return 0;
}
# | 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... |