Submission #1183060

#TimeUsernameProblemLanguageResultExecution timeMemory
1183060od_aliBalloons (CEOI11_bal)C++20
40 / 100
2095 ms11332 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...