Cod sursa(job #2039482)

Utilizator alex2kamebossPuscasu Alexandru alex2kameboss Data 14 octombrie 2017 16:31:53
Problema Secventa 3 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <cstdio>
#include <climits>

using namespace std;
int n,l,u,x;
float c[30003],r[30003];
int main()
{
    freopen("secv3.in","r",stdin);
    freopen("secv3.out","w",stdout);
    scanf("%d %d %d\n%d", &n,&l,&u,&c[1]);
    for(int i=2;i<=n;i++)
    {
        scanf(" %d", &x);
        c[i]=c[i-1]+x;
    }
    scanf("\n%d", &r[1]);
    for(int i=2;i<=n;i++)
    {
        scanf(" %d", &x);
        r[i]=r[i-1]+x;
    }
    int st=1,vs;
    float sm=c[l]/r[l],ls;
    for(int i=l+1;i<=n;i++)
    {
        ls=(c[i]-c[st-1])/(r[i]-r[st-1]);
        if(sm<ls)
            sm=ls;
        if(i-st+1==u)
        {
            while(i-st+1!=l)
            {
                st++;
                ls=(c[i]-c[st-1])/(r[i]-r[st-1]);
                if(sm<ls)
                    sm=ls;
            }
        }
        else
        {
            vs=st;
            while(i-vs+1!=l)
            {
                vs++;
                ls=(c[i]-c[vs-1])/(r[i]-r[vs-1]);
                if(sm<ls)
                    sm=ls;
            }
        }
    }
    printf("%.02f", sm);
    return 0;
}