Cod sursa(job #1059147)

Utilizator corina.ioanaSerbanescu Corina corina.ioana Data 16 decembrie 2013 11:41:25
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 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", &n,&k);
    for (i=1; i<=n; i++)
    {
        scanf ("%d\n",&b[i]);
        while (!a.empty()&&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\n", S);
    return 0;

}