Cod sursa(job #1904564)

Utilizator Mada2003Madalina Scarlat Mada2003 Data 5 martie 2017 17:23:34
Problema Secventa 3 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<cstdio>

using namespace std;
int n,a[30001],b[30001],x,y,x1,y1,l,u,i,j,k;
double max;
int main()
{
    freopen("secv3.in","r",stdin);
    freopen("secv3.out","w",stdout);
    scanf("%d %d %d",&n,&l,&u);
    for(i=1; i<=n; i++)
        scanf("%d",&a[i]);
    for(i=1; i<=n; i++)
         scanf("%d",&b[i]);
    for(i=1; i<=l; i++)
         x=x+a[i],y=y+b[i];
    max=(double)x/y;
    for(i=l+1,j=l; i<=n; i++)
    {
        x=x+a[i];
        y=y+b[i];
        j++;
        if(j>u)
        {
            x=x-a[i-j+1];
            y=y-b[i-j+1];
            j--;
        }
        x1=x;
        y1=y;
        for(k=i-j+1; k<=i-l; k++)
        {
            x1=x1-a[k];
            y1=y1-b[k];
            if((double)x1/y1>(double)x/y)
            {
                x=x1;
                y=y1;
                j=i-k;;
            }
        }
        if((double)x/y>max) max=(double)x/y;
    }
    printf("%.2f",((int)(max*100))/100.0);
    return 0;
}