Cod sursa(job #3242898)

Utilizator gugalcromMuntoiu Vlad-Ioan gugalcrom Data 14 septembrie 2024 15:17:28
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
#include <climits>

using namespace std;

int main() {
    ifstream fin("sum2.in");
    ofstream fout("sum2.out");
    deque<long long int> coada;
    long long int maxx=LLONG_MIN, N, L, U, i, r;
    fin >> N >> L >> U;
    vector<long long int> a(N+1), sp(N+1);
    for(i=1; i<=N; ++i) {
        fin >> a[i];
        sp[i] = sp[i-1] + a[i];
    }
    for(r=L; r<=N; ++r) {
        while(!coada.empty() && sp[coada.back()] >= sp[r-L]) {
            coada.pop_back();
        }
        while(!coada.empty() && coada.front() < r-U) {
            coada.pop_front();   // ștergem elementele vechi.
        }
        coada.push_back(r-L);
        maxx = max(maxx, sp[r] - sp[coada.front()]);
    }

    fout << maxx;
}