Cod sursa(job #2406785)

Utilizator SmokeCiocotisan Cosmin Smoke Data 16 aprilie 2019 10:52:38
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#define MAX 5000010
using namespace std;

int n , k;

long sum ;

int A[MAX] , Deque[MAX];

void citire()
{
    ifstream in("deque.in");

    in>>n>>k;

    for(int  i = 1 ; i <= n ;i++)
        in>>A[i];

    in.close();

}

int main(void)
{

    citire();


    int 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] ] ;



    }


    ofstream out("deque.out");

    out<<sum;



}