#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |