Submission #1042173

#TimeUsernameProblemLanguageResultExecution timeMemory
1042173sssamuiBalloons (CEOI11_bal)C++17
100 / 100
129 ms11860 KiB
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>
#include <iomanip>
using namespace std;
using ld = long double;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int n;
	cin >> n;
	vector<ld> x(n), r(n);
	for (int i = 0; i < n; i++) cin >> x[i] >> r[i];

	stack<int> inds;
	for (int i = 0; i < n; i++)
	{
		bool cont = true;
		while (!inds.empty() && cont)
		{
			r[i] = fmin(r[i], (x[inds.top()] - x[i]) * (x[inds.top()] - x[i]) / (4 * r[inds.top()]));
			if (r[i] >= r[inds.top()]) inds.pop();
			else cont = false;
		}

		inds.push(i);
		cout << fixed << setprecision(3) << r[i] << "\n";
	}
}
#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...