Cod sursa(job #2591986)

Utilizator levladiatorDragutoiu Vlad-Ioan levladiator Data 31 martie 2020 20:09:56
Problema Secventa 3 Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
#define NMAX 30005
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");

int n,st,dr,mij;
int cost[NMAX],timp[NMAX];
double maxim,suma,sus,jos;

int main()
{
    fin>>n>>st>>dr;
    for(int i=1;i<=n;i++)
    {
        fin>>cost[i];
    }
    for(int i=1;i<=n;i++)
    {
        fin>>timp[i];
    }
    while(st<=dr)
    {
        mij=(st+dr)/2;
        sus=jos=suma=0;
        for(int i=1;i<=mij;i++)
        {
            sus+=cost[i];
            jos+=timp[i];
        }
        suma=max(suma,sus/jos);
        for(int i=mij+1;i<=n;i++)
        {
            sus+=cost[i];
            jos+=timp[i];
            sus-=cost[i-mij];
            jos-=timp[i-mij];
            suma=max(suma,sus/jos);
        }
        if(suma>=maxim)
        {
            maxim=suma;
            st=mij+1;
        }
        else dr=mij-1;
    }
    fout<<setprecision(2)<<fixed;
    fout<<maxim;
}