#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 200005
#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);
long double x[maxn] , r[maxn] , R[maxn];
int main(){
FAST;
int n;
cin >> n;
FOR(i , 1 , n){
ll _x , _r;
cin >> _x >> _r;
x[i] = (long double) _x;
r[i] = (long double) _r;
}
stack<int> st;
FOR(i , 1 , n){
long double Ri = r[i]; // ban kinh toi da ma bong bong htai co the bom duoc
while(!st.empty()){
int j = st.top();
long double dx = (x[i] - x[j]);
long double cand = (dx * dx) /( 4 * R[j]);
if(Ri > cand) Ri = cand; // Ri = min(Ri , dx^2 / 4Rj);
if(Ri > R[j]) st.pop();
else break;
}
R[i] = Ri;
st.push(i);
}
FOR(i , 1 , n) cout << fixed << setprecision(3) << R[i] << "\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... |