Cod sursa(job #839250)

Utilizator assa98Andrei Stanciu assa98 Data 21 decembrie 2012 16:29:57
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

int n,k;
int deque[5000100];
int v[5000100];
long long sum;

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

    int st=1;
    int dr=0;//dr<st => coada este vida
        //v[deque[st]]=min
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);

        while(st<=dr&&v[i]<v[deque[dr]])
            dr--;
        deque[++dr]=i;

        if(deque[st]<i-k+1)
            st++;

        if(i>=k)
            sum+=v[deque[st]];
    }
    printf("%lld",sum);
    return 0;
}