Cod sursa(job #2445458)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 4 august 2019 09:58:11
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <deque>

using namespace std;

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

const int NMAX = 5e6;

int N, K;
int v[NMAX + 5];

long long sum;
deque <int> deq;

int main()
{
    fin >> N >> K;

    for(int i = 1; i <= N; i++)
        fin >> v[i];

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

        deq.push_back(i);

        if(deq.back() - deq.front() >= K)
            deq.pop_front();

        if(i >= K)
            sum += 1LL * v[deq.front()];
    }

    fout << sum << '\n';

    return 0;
}