Cod sursa(job #482085)

Utilizator cont_de_testeCont Teste cont_de_teste Data 2 septembrie 2010 14:30:40
Problema Secventa 3 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
# include <cstdio>

const char FIN[] = "secv3.in", FOU[] = "secv3.out" ;
const int MAX = 30000 ;

int V[MAX], T[MAX] ;
int N, L, U ;
double sol ;

int main ( void ) {
    freopen ( FIN, "r", stdin ) ;

    scanf ( "%d %d %d", &N, &L, &U ) ;

    for ( int i = 1; i <= N; ++i ) {
        scanf ( "%d", V + i ) ;
    }
    for ( int i = 1; i <= N; ++i ) {
        scanf ( "%d", T + i ) ;
    }

    for ( int i = L; U <= L + ( U - L ) / 1.01 ? i <= U : i <= U - ( U - L ) ; ++i ) {
        int sumv = 0, sumt = 0 ;
        for ( int j = 1; j <= i; ++j ) {
            sumv += V[j] ;
            sumt += T[j] ;
        }

        if ( 1.0 * sumv / sumt > sol ) {
            sol = 1.0 * sumv / sumt ;
        }

        for ( int j = i + 1; j <= N; ++j ) {
            sumv += V[j] - V[j - i] ;
            sumt += T[j] - T[j - i] ;
            if ( 1.0 * sumv / sumt > sol ) {
                sol = 1.0 * sumv / sumt ;
            }
        }
    }

    fprintf ( fopen ( FOU, "w" ) , "%.4lf" , sol ) ;

    return 0 ;
}