Cod sursa(job #2514392)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 25 decembrie 2019 16:48:37
Problema Secventa 3 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#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(){
    f>>n>>u>>l;
    for(int i=1; i<=n; i++){
        f>>scost[i];
        scost[i]+=scost[i-1];
    }
    for(int i=1; i<=n; 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(){
    int pozstart = 1;
    double vmax = fractie(1, u);
    for(int i=u+1; i<=n; i++){
        if(i - pozstart > l)
            pozstart ++;
        double ma1 = fractie(i-u+1, i);
        double ma2 = fractie(pozstart, i);
        if(ma1>ma2){
            vmax = max(vmax, ma1);
            pozstart = i - u + 1;
        }
        else vmax = max(vmax, ma2);
    }
    g<<setprecision(2)<<vmax;
}
int main()
{
    citire();
    secventa();
    return 0;
}