Cod sursa(job #1059142)

Utilizator corina.ioanaSerbanescu Corina corina.ioana Data 16 decembrie 2013 11:35:44
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <deque>
using namespace std;
deque <int> a;
int b[5000005],n,k,i;
long long S;
int main ()
{
    freopen ("deque.in","r",stdin);
    freopen ("deque.out","w",stdout);
    scanf("%d %d", &n,&k);
    for (i=1; i<=n; i++)
    {
        scanf ("%d",&b[i]);
    }
    for (i=1; i<=n; i++)
    {
        if (!a.empty())
        while (b[i]<b[a.back()])
        {
            a.pop_back();
        }
        a.push_back(i);
        while (a.front()<=i-k)
        {
            a.pop_front();
        }
        if (i>=k)S+=b[a.front()];
    }
    printf ("%lld", S);
    return 0;

}