Cod sursa(job #2808242)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 24 noiembrie 2021 19:24:40
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>

using namespace std;

const int Nmax = 5000005;

deque<int> dq; // retin pozitii
int a[Nmax], n, k;

int main() {
    long long suma = 0;
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    fin >> n >> k;
    for(int i = 1; i <= n; i++) {
        fin >> a[i];
        while(!dq.empty() && a[dq.back()] >= a[i]) {
            dq.pop_back();
        }
        dq.push_back(i);
        if(dq.front() <= i - k) {
            dq.pop_front();
        }
        if(i >= k) {
            suma += a[dq.front()];
        }
    }
    fout << suma << "\n";
}