Submission #576358

#TimeUsernameProblemLanguageResultExecution timeMemory
576358BenqtBalloons (CEOI11_bal)C++17
20 / 100
601 ms10024 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;

const int INF = 1000000000;
const ll LINF = (ll) INF * (ll) INF;
const ld DINF = (ld) INF * (ld) INF;

int main() {
	int n;
	cin >> n;
	vector<pair<ld, ld>> arr(n);
	for (int i=0; i<n; i++) {
		cin >> arr[i].first; //x coord
		cin >> arr[i].second; //radius
	}

	pair<ld, ld> big_r = arr[0];
	pair<ld, ld> big_h = arr[0];

	for (int i=1; i<n; i++) {
		ld h1 = arr[i].first - big_h.first;
		ld r1 = (h1 * h1)/(4 * big_h.second);

		ld h2 = arr[i].first - big_r.first;
		ld r2 = (h2 * h2)/(4 * big_r.second);
		//cout << r1 << " " << r2 << endl;

		arr[i].second = min(arr[i].second, min(r1, r2));

		big_h = arr[i];
		if (arr[i].second > big_r.second) {
			big_r = arr[i];
		}
	}
	cout << setprecision(20);
	for (int i=0; i<n; i++) {
		cout << arr[i].second << endl;
	}
}
#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...