# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1266749 | hoangmc2009 | Balloons (CEOI11_bal) | C++17 | 96 ms | 8264 KiB |
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using f64 = long double;
i64 n,x[200009],r[200009];
long double y[200009];
bool check(int i,int j,int k) {return (x[i]-x[k])*(x[i]-x[k])/y[i]>=(x[j]-x[k])*(x[j]-x[k])/y[j];}
int main()
{
if(fopen("D:/CPP/THEMIS/test.inp","r"))
{
freopen("D:/CPP/THEMIS/test.inp","r",stdin);
freopen("D:/CPP/THEMIS/test.out","w",stdout);
}
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;++i) cin>>x[i]>>r[i];
y[1]=r[1]; y[2]=min(f64(r[2]),(x[1]-x[2])*(x[1]-x[2])/4.0L/y[1]);
for(int i=3;i<=n;++i)
{
y[i]=r[i];
int l=2,h=i,mid;
while(l<=h)
{
mid=(l+h)/2;
if(check(mid-1,mid,i)) h=mid-1;
else l=mid+1;
}
y[i]=min(y[i],(x[i]-x[l])*(x[i]-x[l])/4.0L/y[l]);
}
for(int i=1;i<=n;++i) cout<<fixed<<setprecision(3)<<y[i]<<'\n';
}
Compilation message (stderr)
# | 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... |