Submission #1266749

#TimeUsernameProblemLanguageResultExecution timeMemory
1266749hoangmc2009Balloons (CEOI11_bal)C++17
10 / 100
96 ms8264 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)

bal.cpp: In function 'int main()':
bal.cpp:12:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         freopen("D:/CPP/THEMIS/test.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bal.cpp:13:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |         freopen("D:/CPP/THEMIS/test.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...