Cod sursa(job #1439186)

Utilizator Miruna_DMiruna Miruna_D Data 21 mai 2015 18:55:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
#define Nmax 5000010
using namespace std;
int n,k;
int V[Nmax], Deque[Nmax];
int Front, Back;
long long sum;

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

    int i;
fin>>n>>k;
   for(i=1;i<=n;i++)
    fin>>V[i];

    Front=1;
    Back=0;

    for(i=1;i<=n;i++)
    {
        while(Front<=Back && V[i]<=V[Deque[Back]]) Back--;

        Back++;
        Deque[Back]=i;

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

        if(i>=k) sum+=V[Deque[Front]];
    }

    fout<<sum;


    return 0;
}