Cod sursa(job #2895401)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 29 aprilie 2022 01:34:47
Problema Secventa 3 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
using namespace std;

ifstream fin ("secv3.in");
ofstream fout ("secv3.out");

#define dim 30010

long long n, l, u, sus, jos, st, dr, a[dim], b[dim], i, j, cnt;
double best;

int main(){
    fin >> n >> l >> u;
    for(i = 1; i<=n; i++)
        fin >> a[i];
    for(i = 1; i<=n; i++)
        fin >> b[i];
    
    for(i=1; i<=l; i++){
        sus += a[i];
        jos += b[i];
    }

    st = 1;
    // dr = l;
    cnt = l;
    best = 1.0 * sus / jos;

    for(i=l+1; i<=n; i++){

        sus += a[i];
        jos += b[i];
        cnt++;


        if(cnt > u){
            cnt--;
            sus -= a[st];
            jos -= b[st];
            st++;
        }

        while( cnt > l && sus * (jos-b[st]) < (sus-a[st]) * jos ){
            cnt--;
            sus -= a[st];
            jos -= b[st];
            st++;
        }

        if(best < 1.0 * sus / jos)
            best = 1.0 * sus / jos;
    }

    fout << best;

    return 0;
}