Cod sursa(job #2596596)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 9 aprilie 2020 23:31:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

int main () {
    ifstream fin ("deque.in");
    ofstream fout ("deque.out");

    deque <pair <int, int>> dq;
    long long n, k, x, i;
    fin >> n >> k
        >> x;
    dq.push_front(make_pair(x, 1));

    for (i=2; i<=k; i++) {
        fin >> x;
        while (!dq.empty() && x<dq.back().first)
            dq.pop_back();
        dq.push_back(make_pair(x, i));
    }

    long long s=dq.front().first;
    for (; i<=n; i++) {
        if (dq.front().second+k<=i)
            dq.pop_front();
        fin >> x;
        while (!dq.empty() && x<dq.back().first)
            dq.pop_back();
        dq.push_back(make_pair(x, i));
        s+=(long long)dq.front().first;
    }
    fout << s;
    return 0;
}