Cod sursa(job #922113)

Utilizator PatrikStepan Patrik Patrik Data 21 martie 2013 22:21:40
Problema Secventa 3 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
    #include<cstdio>
    using namespace std;
    #define MAX 30001
    int N ,L ,U , c[MAX] , t[MAX] , sum , ti ;
    float maxx;

    void citire();
    void solve();
    void tipar();

    int main()
    {
        citire();
        solve();
        tipar();
        return 0;
    }

    void citire()
    {
        freopen("secv3.in" , "r" , stdin );
        scanf("%d%d%d" , &N , &L , &U);
        for( int i = 1 ; i <= N ; ++i )
            scanf("%d" , &c[i]);
        for(int i = 1 ; i <= N ; ++i)
            scanf("%d" , &t[i]);
    }

    void solve()
    {
        int j = 1;
        for(int i = 1 ; i <= L ; ++i)
        {
            sum+=c[i];
            ti+=t[i];
        }
        for(int i = L+1 ; i <= N ; ++i)
        {
            sum+=c[i];
            ti+=t[i];

            if(i-j+1>U)
            {
                sum-=c[j];
                ti-=t[j++];
            }
            while((float)(sum/ti) < (float)(sum-c[j])/(ti-t[j]) && i-j+1 > L)
            {
                sum-=c[j];
                ti-=t[j++];
            }
            if((float)sum/ti > maxx)
                maxx = (float)sum/ti;
        }
    }

    void tipar()
    {
        freopen("secv3.out" , "w" , stdout);
        printf("%f" , maxx);
    }