#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i , a , b) for(int i = a ; i <= b; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define maxn 200005
struct Point{
ll x , r;
};
Point a[maxn];
long double x[maxn] , radi[maxn] , R[maxn];
int main(){
FAST;
int n;
cin >> n;
FOR(i , 1 , n){
cin >> a[i].x >> a[i].r;
x[i] = (long double)a[i].x;
radi[i] = (long double) a[i].r;
}
stack<int> st;
FOR(i , 1 , n){
long double Ri = radi[i];
while(!st.empty()){
int j = st.top();
long double dx = x[i] - x[j];
long double cand = dx * dx / (4.0L * R[j]);
if(cand < Ri) Ri = cand;
if(Ri > R[j]) st.pop();
else break;
}
R[i] = Ri;
st.push(i);
}
FOR(i , 1 , n) cout << fixed << (long double) R[i] << setprecision(3) << "\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... |