Cod sursa(job #2634273)

Utilizator matthriscuMatt . matthriscu Data 10 iulie 2020 12:16:18
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <deque>
using namespace std;

int v[5000005];

int main() {
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    int n, k, i, j, x;
    long long s;
    deque<int> dq;
    fin >> n >> k;
    for(i = 1; i <= n; ++i)
        fin >> v[i];
    for(i = 1; i <= k; ++i) {
        while(!dq.empty()) {
            if(v[i] >= dq.back())
                break;
            dq.pop_back();
        }
        dq.push_back(v[i]);
    }
    s = dq.front();
    for(i = k + 1; i <= n; ++i) {
        while(!dq.empty()) {
            if(v[i] >= dq.back())
                break;
            dq.pop_back();
        }
        dq.push_back(v[i]);
        if(dq.front() == v[i - k])
            dq.pop_front();
        s += dq.front();
    }
    fout << s;
}