Cod sursa(job #1513501)

Utilizator andru47Stefanescu Andru andru47 Data 29 octombrie 2015 17:19:51
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX=5000005;
int n,k,a[NMAX];
deque <int> dq;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d %d\n",&n,&k);
    for (int i=1 ; i<=n ; ++i)
        scanf("%d",&a[i]);
    int s=0;
    for (int i=1 ; i<=n ; ++i)
    {
        while(!dq.empty()&&a[i]<a[dq.back()])dq.pop_back();
        dq.push_back(i);
        if (dq.front()==i-k)dq.pop_front();
        if (i>=k) s += a[dq.front()];
    }
    printf ("%d\n",s);
}