Cod sursa(job #2552195)

Utilizator tangerine515Alex Anton tangerine515 Data 20 februarie 2020 17:40:43
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb

constexpr int lmax = (int)5e6+10L;

#include <iostream>
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

int n, k;
int v[lmax];

deque<int> dq;

int main() {
    fstream fi("deque.in");
    fstream fo("deque.out");

    long long s = 0;

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

    #define bak dq.back()
    #define frn dq.front()
    #define meow dq.pop_back()
    #define bark dq.pop_front()

    for (int i = 1; i <= n; ++i) {
        while (!dq.empty() && v[bak] > v[i]) meow;
        dq.push_back(i);
        if (frn == i-k) bark;
        if (i >= k) s += v[frn];
    }

    fo << s;
    
    fo.close();
    fi.close();

    return 0;
}