Cod sursa(job #1414280)

Utilizator Alexghita96Ghita Alexandru Alexghita96 Data 2 aprilie 2015 14:50:28
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <queue>

#define NMAX 5000005

using namespace std;

int A[NMAX], N, K, sum;
deque <int> q;

int main()
{
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);

    scanf("%d %d", &N, &K);

    for (int i = 1; i <= N; ++i)
        scanf("%d", &A[i]);

    for (int i = 1; i <= N; ++i)
    {
        while (q.empty() == false && 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()];
    }
    printf("%d", sum);
    return 0;
}