Cod sursa(job #2911945)

Utilizator Teodor11Posea Teodor Teodor11 Data 5 iulie 2022 16:26:24
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, k, dequeFront, dequeBack, a[5000000], deque[5000000];
long long sum;

int main() {
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    fin >> n >> k;
    for (int i = 0; i < n; ++i) {
        fin >> a[i];
    }
    dequeFront = 1;
    for (int i = 0; i < n; ++i) {
        while (dequeFront <= dequeBack && a[i] <= a[deque[dequeBack]]) {
            --dequeBack;
        }
        deque[++dequeBack] = i;
        if (deque[dequeFront] == i - k) {
            ++dequeFront;
        }
        if (i + 1 >= k) {
            sum += a[deque[dequeFront]];
        }
    }
    fout << sum;
    return 0;
}