Cod sursa(job #2039652)

Utilizator GrasuneAlexandruGrasune Alexandru Mihai GrasuneAlexandru Data 14 octombrie 2017 19:07:51
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <cstdio>
#define X 30001
using namespace std;
int n,l,u,i,j,nr;
double rez,sc,sprec,c[X],t[X];

int main()
{
    freopen("secv3.in","r",stdin);
    freopen("secv3.out","w",stdout);
    scanf("%d %d %d\n",&n,&l,&u);
    for(i=1; i<=n; i++)
    {

        scanf("%d ",&nr);
        c[i]=c[i-1]+nr;

    }
    scanf("\n");
    for(i=1; i<=n; i++)
    {
        scanf("%d ",&nr);
         t[i]=t[i-1]+nr;
    }

    ///constr siruruile de sume pt cost si timp
     rez=c[l]/t[l];
    j=1;
    ///aleg sirul de l el ca baza de comp
    for(i=l+1;i<=n;i++)
    {
        if(i-l==u)
            j++;
            ///dca secv are val max atunci mut inceputul
       sprec=(c[i]-c[j-1])/(t[i]-t[j-1]);
        sc=(c[i]-c[i-l])/(t[i]-t[i-l]);
        ///calc rap pentru secv curenta si precedenta
        if(sprec<sc)
        {
            sprec=sc;
            j=i-l+1;
        }
        rez=max(rez,sprec);
        ///daca curenta e mai buna compar cu rez si mut inceputul secv la inceputul secv actuale

    }
    printf("%.2lf ",rez);

    return 0;
}