Cod sursa(job #2514502)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 26 decembrie 2019 10:47:58
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <cstdio>
#include <deque>
#include <iomanip>
#define NMAX 30005
using namespace std;

//ifstream f("secv3.in");
//ofstream g("secv3.out");

int scost[NMAX], stimp[NMAX], n, u, l;


void citire(){
    freopen("secv3.in", "r", stdin);
    freopen("secv3.out", "w", stdout);

    scanf("%d %d %d", &n, &l, &u);
    //f>>n>>l>>u;
    for(int i=1; i<=n; i++){
        scanf("%d", &scost[i]);
        //f>>scost[i];
        scost[i]+=scost[i-1];
    }
    for(int i=1; i<=n; i++){
        scanf("%d", &stimp[i]);
        //f>>stimp[i];
        stimp[i]+=stimp[i-1];
    }
}

double fractie(int start, int finish){
    return (double)(scost[finish]-scost[start-1])/(stimp[finish]-stimp[start-1]);
}
void secventa(){
    freopen("secv3.out", "w", stdout);

    int pozstart = 1;
    double vmax = fractie(1, l);
    for(int i=l+1; i<=n; i++){
        if(i - pozstart + 1 > u)
            pozstart ++;
        double ma1 = fractie(i-l+1, i);
        double ma2 = fractie(pozstart, i);
        if(ma1>ma2){
            vmax = max(vmax, ma1);
            pozstart = i - l + 1;
        }
        else vmax = max(vmax, ma2);
    }
    printf("%.2f", vmax);
}
int main()
{
    citire();
    secventa();
    return 0;
}