Cod sursa(job #2036262)

Utilizator papinub2Papa Valentin papinub2 Data 10 octombrie 2017 16:01:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <deque>

using namespace std;

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

int n, k;
int v[5000010];

long long suma;

deque <int> D;

int main()
{
    in >> n >> k;

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

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

        D.push_back(i);

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

            suma = suma + v[D.front()];
        }
    }

    out << suma;

    return 0;
}