Submission #1266751

#TimeUsernameProblemLanguageResultExecution timeMemory
1266751hoangmc2009Balloons (CEOI11_bal)C++17
10 / 100
895 ms8172 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];
vector<int> st;
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]; st.push_back(1);
    for(int i=2;i<=n;++i)
    {
        y[i]=r[i];
        //while(st.size()>=2 and !check(st[st.size()-2],st[st.size()-1],i)) st.pop_back();
        //y[i]=min(f64(r[i]),(x[i]-x[st.back()])*(x[i]-x[st.back()])/4.0L/y[st.back()]); st.push_back(i);
        for(int j=i-1;j>0;--j)
        {
            y[i]=min(y[i],(x[i]-x[j])*(x[i]-x[j])/4.0L/y[j]);
            if(!check(j-1,j,i)) break;
        }
    }
    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: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.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bal.cpp:14:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |         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...