Cod sursa(job #2374899)

Utilizator AndoneAlexandruAndone Alexandru AndoneAlexandru Data 7 martie 2019 21:09:50
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <deque>
#define NMAX 5000010
using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

deque<int> Q;
int n, k;
int a[NMAX];
long long int sum;

int main() {
    f >> n >> k;

    for (int i = 1; i <= n; ++i)
        f >> a[i];

    for (int i = 1; i <= n; ++i) {
        while (!Q.empty() && a[i] <= a[Q.back()]) Q.pop_back();
        Q.push_back(i);
        if (Q.front() == i-k) Q.pop_front();
        if (i >= k) sum += a[Q.front()];
    }

    g << sum;
    return 0;
}