Cod sursa(job #1597796)

Utilizator RaduToporanRadu Toporan RaduToporan Data 12 februarie 2016 12:33:21
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <deque>

using namespace std;
int n,k,i,x[5000005];
long long s;
deque <int>d;

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",&x[i]);
        while (!d.empty() && x[i]< x[d.back()])
            d.pop_back();
        d.push_back(i);
        if (i>=k)
        {
            if (d.front()<i-k+1) d.pop_front();
            s=s+x[d.front()];
        }
    }
    printf("%lld\n",s);
    return 0;
}