Cod sursa(job #2552206)

Utilizator tangerine515Alex Anton tangerine515 Data 20 februarie 2020 17:48:02
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb

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

using namespace std;

int n, k;

deque<int> dq;
vector<int> v;

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

    long long s = 0;

    fi >> n >> k;

    v.push_back(0);
    for (int i = 1; i <= n; ++i) {
        v.push_back(0);
        fi >> v.back();
    }

    #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;
}