Cod sursa(job #403606)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 25 februarie 2010 09:28:32
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#include<deque>
#define Nmx 5000002

using namespace std;

int n,a[Nmx],k;
deque <int> D;

void citire()
{
    int x;
    long long sum=0;
    scanf("%d %d",&n,&k);
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&a[i]);
        while(D.size()>0&&D.back()>=a[i])
            D.pop_back();
        D.push_back(a[i]);
        if(i>=k)
        {
            if(i>k)
            if(D.front()==a[i-k])
                D.pop_front();
            sum+=D.front();
        }
    }
    printf("%lld\n",sum);
}


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