Cod sursa(job #1566544)

Utilizator fromzerotoheroFROM ZERO fromzerotohero Data 12 ianuarie 2016 11:47:57
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <deque>

#define nmax 5000001

using namespace std;

int n, k;
int rez;
int A[nmax];

deque <int> D;

int main()
{

    ifstream fi("deque.in");
    ofstream fo("deque.out");

    fi >> n >> k;

    for (int i = 1; i <= n; i++)
    {

        fi >> A[i];

        while (!D.empty() && A[i] < A[D.back()])
            D.pop_back();

        D.push_back(i);

        if (i < k)
            continue;

        if (i - D.front() >= k)
            D.pop_front();

        rez += A[D.front()];

    }

    fo << rez << "\n";

    fi.close();
    fo.close();

    return 0;
}