Cod sursa(job #2011327)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 15 august 2017 20:45:01
Problema Secventa 3 Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
#include <stdlib.h>
int s[30001],t[30001];
int main()
{
    int n,l,u,i,ss,tt,j;
    long long max;
    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",&s[i]);
    for(i=1; i<=n; i++)
        scanf("%d",&t[i]);
    for(i=1; i<=n; i++)
    {
        s[i]=s[i-1]+s[i];
        t[i]=t[i-1]+t[i];
    }
    ss=s[l];
    tt=t[l];
    max=s[l]*100/t[l];
    j=1;
    for(i=l+1; i<=n; i++)
    {
        if(i-j+1>u)
        {
            ss-=(s[j]-s[j-1]);
            tt-=(t[j]-t[j-1]);
            j++;
        }
        ss+=(s[i]-s[i-1]);
        tt+=(t[i]-t[i-1]);
        if(ss*100/tt<(s[i]-s[i-l])*100/(t[i]-t[i-l]))
        {
            if((long long)ss*100/tt>max)
                max=(long long)ss*100/tt;
            ss=(s[i]-s[i-l]);
            tt=(t[i]-t[i-l]);
            j=i-l+1;
        }
    }
    if((long long)ss*100/tt>max)
        max=(long long)ss*100/tt;
    printf("%lld.%lld\n",max/100,max%100);

    return 0;
}