Cod sursa(job #1844576)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 10 ianuarie 2017 03:38:48
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <deque>

#define maxN 5000001

using namespace std;

ifstream is("deque.in");
ofstream os("deque.out");

int N, K, value[maxN], sumOfMinimums;
deque<int> D;

int main()
{
    is >> N >> K;
    for (int i = 1; i <= N; ++i)
        is >> value[i];

    for (int i = 1; i <= N; ++i)
    {
        while (!D.empty() && value[D.back()] >= value[i])
            D.pop_back();

        D.push_back(i);

        if (D.front() == i-K)
            D.pop_front();

        if (i >= K)
            sumOfMinimums += value[D.front()];
    }

    os << sumOfMinimums;

    is.close();
    os.close();
}