Cod sursa(job #3223150)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 12 aprilie 2024 15:36:30
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>

#pragma optimize GCC ("Ofast")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

///#include <tryhardmode>
///#include <GODMODE::ON>

using namespace std;

ifstream fin ("secv3.in");
ofstream fout ("secv3.out");

const int NMAX=3e4+5;

int sp[NMAX];
int t[NMAX];

double query_range(int x,int y)
{
    return (double)(sp[y]-sp[x-1])/(t[y]-t[x-1]);
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    int n,i,j,l,u;
    fin>>n>>l>>u;
    for(i=1;i<=n;i++)
    {
        int x;
        fin>>x;
        sp[i]=sp[i-1]+x;
    }
    for(i=1;i<=n;i++)
    {
        int x;
        fin>>x;
        t[i]=t[i-1]+x;
    }
    int x=1;
    double best=0;
    for(i=l;i<=n;i++)
    {
        x=max(x,i-u+1);
        if(query_range(i-l+1,i)>=query_range(x,i))
        {
            x=i-l+1;
            best=max(best,query_range(i-l+1,i));
        }
        else
            best=max(best,query_range(x,i));
    }
    fout<<fixed<<setprecision(2)<<best;
    fin.close();
    fout.close();
    return 0;
}