Cod sursa(job #1008117)

Utilizator Anca_PaneaPanea Anca Anca_Panea Data 10 octombrie 2013 11:09:08
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
using namespace std;
#define Nmax  5000005
#include<fstream>
ifstream eu("deque.in");
ofstream tu("deque.out");
int K,N,A[Nmax],Deque[Nmax],Front,Back;
long long S;
void read()
{
    eu>>N>>K;
    for(int i=1;i<=N;i++)
        eu>>A[i];
}
int main()
{
    read();
    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)
            S+=A[Deque[Front]];
    }
    tu<<S;
    return 0;
}