Cod sursa(job #482125)

Utilizator SpiderManSimoiu Robert SpiderMan Data 2 septembrie 2010 15:04:33
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
# include <fstream>
using namespace std ;

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

int V[MAX], T[MAX], SV[MAX], ST[MAX] ;
int N, L, U, cnt = 1 ;
double sol ;

int main ( void ) {
    ifstream fin ( FIN ) ;

    fin >> N >> L >> U ;

    for ( int i = 1; i <= N; ++i ) {
        fin >> V[i] ;
        SV[i] = SV[i - 1] + V[i] ;
    }
    for ( int i = 1; i <= N; ++i ) {
        fin >> T[i] ;
        ST[i] = ST[i - 1] + T[i] ;
    }

    sol = 1.0 * SV[L] / ST[L] ;
    for ( int i = 1; i <= N - L ; ++i ) {
        if ( i - cnt + 1 > U - L ) {
            ++cnt ;
        }
        double sumt = 1.0 * ( SV[i + L] - SV[cnt - 1] ) / ( ST[i + L] - ST[cnt - 1] ) ;
        double sumv = 1.0 * ( SV[i + L] - SV[i] ) / ( ST[i + L] - ST[i] ) ;

        if ( sumv > sumt ) {
            cnt = i + 1 ;
            sumt = sumv ;
        }
        if ( sol < sumt ) {
            sol = sumt ;
        }
    }

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

    return 0 ;
}