Cod sursa(job #2631187)

Utilizator Octav02Cosofret Octavian-Stefan Octav02 Data 29 iunie 2020 13:09:52
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

#include <deque>

using namespace std;

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

const int NMAX =  5000005;
int n, k, v[NMAX];
long long sol;
deque<int> deq;

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

        while (!deq.empty() && v[i] < deq.back())
            deq.pop_back();
        deq.push_back(v[i]);
    }

    sol = deq.front();

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

        while (!deq.empty() && v[i] < deq.back())
            deq.pop_back();
        deq.push_back(v[i]);

        if (deq.front() == v[i - k])
            deq.pop_front();
        sol += deq.front();
    }

    fout << sol;
    return 0;
}