Submission #576368

#TimeUsernameProblemLanguageResultExecution timeMemory
576368BenqtBalloons (CEOI11_bal)C++17
0 / 100
2087 ms44108 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
	}
	vector<pair<ld, ld>> q;
	q.push_back(arr[0]);

	for (int i=1; i<n; i++) {
		while (true) {
			//cout << "loop" << endl;
			for (pair<ld, ld> k : q) {
				cout << k.first << " " << k.second << ") ";
			}
			cout << endl;
			if (q.empty()) {
				break;
			}
			pair<ld, ld> last = q[i-1];
			ld h1 = arr[i].first - last.first;
			ld r1 = (h1 * h1)/(4 * last.second);

			if (q.size() == 1) {
				arr[i].second = min(arr[i].second, r1);
				break;
			}

			pair<ld, ld> second_last = q[i-2];
			ld h2 = arr[i].first - second_last.first;
			ld r2 = (h2 * h2)/(4 * second_last.second);
			//cout << "r1r2 " << r1 << " " << r2 << endl;
			if (r2 < r1) {
				q.pop_back();
			} else {
				arr[i].second = min(arr[i].second, min(r2, r1));
				break;
			}
			arr[i].second = min(arr[i].second, min(r2, r1));
		}
		cout << setprecision(20) << endl;
		q.push_back(arr[i]);
	}
	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...