#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#define He_he_boy ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define ld long double
#define pb push_back
#define pf push_front
#define eb emplace_back
#define fi first
#define se second
#define ull unsigned long long
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define mx_e max_element
#define open freopen("fcolor.in", "r", stdin);
#define close freopen("fcolor.out", "w", stdout);
#define endl cout << '\n'
#define run(a) for (ll w23 = 1; w23 <= a; w23++)
typedef long long ll;
using namespace std;
const ld eps = 0.00001, Pi = 3.14159275358979323846;
const ll mod = 1e9 + 7;
ll mod2 = 998244353, tt;
/// --------------------------------------------------------
ld dist(ld x, ld y, ld x2, ld y2){
return sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2));
}
void Ali() {
ll n;
cin >> n;
ld x[n + 10] = {}, r2[n + 10] = {};
ld ans[n + 19] = {};
for(ll i = 1;i <= n;i ++){
cin >> x[i] >> r2[i];
ans[i] = x[i];
}
ll ot[n + 10] = {};
ot[1] = r2[1];
ans[1] = r2[1];
for(ll i = 2;i <= n;i ++){
ld g =r2[i];
for(ll j = i - 1;j >= 1;j --){
ld l = 0, r = r2[i];
while(l + eps < r){
ld mid = (l + r) / 2.0;
if(dist(x[j], ans[j], x[i], mid) <= ans[j] + mid){
r = mid;
}
else{
l = mid;
}
}
g = min(g, r);
}
ans[i] = g;
}
cout << fixed << setprecision(6);
for(ll i = 1;i <= n;i ++){
cout << ans[i] << '\n';
}
}
/// --------------------------------------------------------
int main() {
// open
// close;
He_he_boy;
ll gg = 1; tt = 0;
//cin >> gg;
while (gg--) {
Ali();
// cout << '\n';
}
/*
**PLUS ULTRA**
*/
}
# | 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... |