Cod sursa(job #3217780)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 24 martie 2024 17:37:51
Problema Secventa 3 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <map>
#include <string>
using namespace std;
ifstream fin ("secv3.in");
ofstream fout("secv3.out");
int k,i,sol,nr,st,n,U,L;
double C[30002],T[30002],sC,sT,maxim;
/*int cb(int val)
{
    int i,step;
    for(step=1;step<n;step<<=1);
    for(i=0;step;step>>=1)
        if(i+step<n&&V[i+step]<=val)
            i+=step;
    return i;
}*/
int main()
{
    fin>>n>>L>>U;
    for(i=1;i<=n;i++)
        fin>>C[i];
    for(i=1;i<=n;i++)
        fin>>T[i];
    for(i=1;i<L;i++)
    {
        sC+=C[i];
        sT+=T[i];
    }
    st=1;
    for(i=L;i<=n;i++)
    {
        sC+=C[i];
        sT+=T[i];
        while(i-st+1>L&&(sC-C[st])/(sT-T[st])>(sC/sT))
        {
            sC-=C[st];
            sT-=T[st];
            st++;
        }
        if(i-st+1>U)
        {
            sC-=C[st];
            sT-=T[st];
            st++;
            while(i-st+1>L&&(sC-C[st])/(sT-T[st])>(sC/sT))
            {
                sC-=C[st];
                sT-=T[st];
                st++;
            }
        }
        maxim=max(maxim,sC/sT);
    }
    fout<<fixed<<setprecision(2)<<maxim;
    return 0;
}