Cod sursa(job #794722)

Utilizator Viva12Ferentz Sergiu Viva12 Data 6 octombrie 2012 21:42:04
Problema Deque Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#define N 5000005
using namespace std;
int n,k;
long long a[N];
long long deque[N];
void citire()
{
        scanf("%d %d",&n,&k);
        a[0] = -10000005;
        for(int i = 1 ; i <= n ; i++)
        {scanf("%lld",&a[i]);

        }
}

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

    int back = 1, front = 1;
    int sum = 0;
    citire();
    for(int i = 1 ; i <=n;i++)
    {
        while(a[i] < a[deque[front - 1]])
        {
            front--;
        }
        deque[front++] = i;;

        if(deque[back] == i - k )
        back++;
        if(i >= k)
        sum += a[deque[back]];

    }

    printf("%d", sum);
    return 0;
}