제출 #1278636

#제출 시각아이디문제언어결과실행 시간메모리
1278636foodBalloons (CEOI11_bal)C++20
100 / 100
89 ms6672 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
ll x[200001];
double r[200001];
double ans[200001];
stack<pair<double,double>> st;
double cal(double ir,ll ix,ll jx)
{
	return (double)((jx-ix)*(jx-ix))/(4*ir);
}
int main()
{
	// freopen("sequence.inp","r",stdin);
	// freopen("sequence.out","w",stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin >> n;
	for(ll i=1;i<=n;i++)
	{
		cin >> x[i] >> r[i];
	}
	for(ll i=1;i<=n;i++)
	{
		double res=r[i];
		// for(ll j=1;j<=i-1;j++)
		// {
		// 	if(i!=j)
		// 	{
		// 		res=min(res,cal(ans[j],x[i],x[j]));
		// 	}
		// }
		while(!st.empty())
		{
			res=min(res,cal(st.top().second,st.top().first,x[i]));
			if(res>=st.top().second)
			{
				st.pop();
				continue;
			}
			else
			{
				break;
			}
		}
		ans[i]=res;
		st.push({x[i],ans[i]});
	}
	for(ll i=1;i<=n;i++)
	{
		cout << setprecision(3) << fixed << ans[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...