Cod sursa(job #2596564)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 9 aprilie 2020 21:46:58
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

deque <pair <long long, long long>> dq;
int main () {
    ifstream fin ("deque.in");
    ofstream fout ("deque.out");

    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+=dq.front().first;
    }
    fout << s;
    return 0;
}