Cod sursa(job #1688819)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 13 aprilie 2016 19:08:34
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

#define maxn 5000010

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

int n,k,a[maxn],Deque[maxn],Front,Back;
long long Sum;

int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    Front=1,Back=0;
    for(int i=1;i<=n;i++)
    {
        while(Front<=Back && a[i]<=a[Deque[Back]])
            Back--;
        Deque[++Back]=i;

        if(Deque[Front]==i-k)
            Front++;

        if(i>=k)
            Sum+=a[Deque[Front]];
    }

    fout<<Sum;
    return 0;
}