Cod sursa(job #2643210)

Utilizator hhhhhhhAndrei Boaca hhhhhhh Data 19 august 2020 10:51:02
Problema Secventa 3 Scor 80
Compilator cpp-64 Status done
Runda prbd1 Marime 1.31 kb
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
ll l,u,s1[30001],s2[30001],n,v1[30001],v2[30001];
pll maxim={0,1};
bool maimare(pll a, pll b)
{
    return a.first*b.second>a.second*b.first;
}
int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(0);
    fout.tie(0);
    fin>>n>>l>>u;
    for(int i=1;i<=n;i++)
    {
        fin>>v1[i];
        s1[i]=s1[i-1]+v1[i];
    }
    for(int i=1;i<=n;i++)
    {
        fin>>v2[i];
        s2[i]=s2[i-1]+v2[i];
    }
    for(int lg=l;lg<=u;lg++)
        for(int i=lg;i<=n;i++)
        {
            ll suma1=s1[i]-s1[i-lg];
            ll suma2=s2[i]-s2[i-lg];
            if(maimare({suma1,suma2},maxim))
                maxim={suma1,suma2};
        }
    double ans;
    double nr1=double(maxim.first);
    double nr2=double(maxim.second);
    ans=nr1/nr2;
    fout<<fixed<<setprecision(2)<<ans;
    return 0;
}