Cod sursa(job #1389294)

Utilizator MaarcellKurt Godel Maarcell Data 16 martie 2015 09:59:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>
using namespace std;

int N,K,a[5000010],q[5000010];

int main(){
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d %d",&N,&K);

    int i,l=1,r=0; long long res=0;
    for (i=1; i<=N; i++) scanf("%d",&a[i]);

    for (i=1; i<=N; i++){
        q[++r]=i;
        while (r && q[l]<i-K+1) l++;

        while (r>l && a[q[r]]<=a[q[r-1]]) q[r-1]=q[r],r--;

        if (i>=K) res+=a[q[l]];
    }

    printf("%lld\n",res);
}