Cod sursa(job #1059515)

Utilizator bodyionitaIonita Bogdan Constantin bodyionita Data 16 decembrie 2013 19:17:57
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <deque>
#define MAXN 5000001
using namespace std;
int N,K,i;
long long S;
int A[MAXN];
deque <int> H;
int main()
{
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);
    scanf("%d %d\n", &N, &K);
    for(i=1; i<=N; ++i)
    {
        scanf("%d\n", &A[i]);
        while(H.size() && A[H.back()]>=A[i]) H.pop_back();
        H.push_back(i);
        if(i>=K) S+=A[H.front()];
        if(H.front()==i-K+1) H.pop_front();
    }
    printf("%lld\n", S);
    return 0;
}