Cod sursa(job #922396)

Utilizator PatrikStepan Patrik Patrik Data 22 martie 2013 09:51:27
Problema Secventa 3 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
    #include<cstdio>
    using namespace std;
    #define MAX 30001
    int N , L , U , c[MAX] , t[MAX], best_sum , best_t  , len , sum , ti;
    float sol;

    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()
    {
        for(int i = 1 ; i < L ; ++i)
        {
            sum+=c[i];
            ti+=t[i];
        }
        for(int i = L ; i <= N ; ++i )
        {
            sum+=c[i];sum-=c[i-L];
            ti+=t[i];ti-=t[i-L];
            if((float)((best_sum+c[i])/(best_t+t[i]) > (float)sum/ti))
               {
                   len++;
                   best_sum+=c[i];
                   best_t+=t[i];
               }
            else
            {
                best_sum = sum;
                best_t = ti;
                len = L;
            }
            if(sol < 1.0*best_sum/best_t)
                sol = 1.0*best_sum/best_t;
        }
    }

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