// Born_To_Laugh - Hughie Do
#include <bits/stdc++.h>
#define alle(sth) sth.begin(), sth.end()
using namespace std;
typedef long long ll;
typedef long double ld;
[[maybe_unused]] const ll MOD = 998244353, INF = 1e9 + 7;
const int maxn = 2e5 + 10;
int n;
vector<int> x(maxn, 0), r(maxn, 0);
vector<ld> val(maxn, 0.0);
ld func(int i, int j){
ld num = (ld)(x[i] - x[j]) * (x[i] - x[j]);
ld num1 = (ld)4 * val[j];
return num / num1;
}
void solve(){
cin >> n;
for(int i=1; i<=n; ++i){
cin >> x[i] >> r[i];
}
vector<int> st;
for(int i=1; i<=n; ++i){
val[i] = ld(r[i]);
while(!st.empty()){
int j = st.back();
val[i] = min(val[i], func(i, j));
if(val[i] > val[j]){
st.pop_back();
continue;
}
break;
}
st.push_back(i);
cout << val[i] << '\n';
}
// cout << func(3, 1);
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(7);
solve();
}
// Lotus
# | 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... |