Cod sursa(job #2836728)

Utilizator MariusDinsorea32DinsoreanMarius MariusDinsorea32 Data 20 ianuarie 2022 20:17:34
Problema Secventa 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

const int N = 3e4 + 7;
int n, l, u, i;
double c[N], t[N];
double rez;

deque <int> cmx, tmx;

int main()
{
    fin >> n >> l >> u;
    for(i = 1; i <= n; i++)
        fin >> c[i], c[i] += c[i - 1];
    for(i = 1; i <= n; i++)
        fin >> t[i], t[i] += t[i - 1];

    for(i = l; i <= n; i++){
        while(!cmx.empty() && c[i - l] < c[cmx.back()])
            cmx.pop_back();

        while(!tmx.empty() && t[i - l] < t[tmx.back()])
            tmx.pop_back();

        tmx.push_back(i); cmx.push_back(i);

        if(i - tmx.front() == u)
            tmx.pop_front();

        if(i - cmx.front() == u)
            cmx.pop_front();

        rez = max(rez, (c[i] - c[cmx.front()]) / (t[i] - t[tmx.front()]));

    }

    fout << rez;
    return 0;
}