Submission #590263

#TimeUsernameProblemLanguageResultExecution timeMemory
590263VanIOImaster153Balloons (CEOI11_bal)C++17
100 / 100
213 ms6620 KiB
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("Os")
#pragma GCC target ("avx2")
#include <bits/stdc++.h>
using namespace std;

const int maxn = 2e5 + 5;
struct pikachu{
	double x, r;
} a[maxn];
int n;
stack<pikachu> st;

double solve(pikachu cur){
	double r1 = cur.r;
	while(!st.empty()){
		pikachu tmp = st.top();
		r1 = min(r1,(cur.x - tmp.x) * (cur.x - tmp.x) / 4 / tmp.r);
		if(r1 > tmp.r) st.pop();
		else break;
	}
	st.push((pikachu){cur.x, r1});
	return r1;
}

signed main(){
	ios_base::sync_with_stdio(false); 
    cin.tie(0);
	cin >> n;
	for(int i = 0; i < n; i++) { 
		cin >> a[i].x >> a[i].r;
	}
	cout << setprecision(3) << fixed << (a[0].r) << '\n';
	st.push(a[0]);
	for(int i = 1; i < n; i++){
		double res = solve(a[i]);
		cout << setprecision(3) << fixed << res << '\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...