Cod sursa(job #2514395)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 25 decembrie 2019 16:55:49
Problema Secventa 3 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 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>>l>>u;
    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, 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);
    }
    g<<setprecision(2)<<vmax;
}
int main()
{
    citire();
    secventa();
    return 0;
}