Cod sursa(job #2629699)

Utilizator gasparrobert95Gaspar Robert Andrei gasparrobert95 Data 22 iunie 2020 12:39:50
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> q;
int n, k, el, sum;

int main() {
    fin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        fin >> el;
        if (k == 1) {
            sum += el;
            continue;
        }
        if (i == 1) {
            q.push_back(el);
            continue;
        }
        int el_sterse = 0, lmax = q.size() - 1;
        if (lmax >= 0) {
            while (lmax >= 0 && q[lmax] > el) {
                q.pop_back();
                ++el_sterse;
                --lmax;
            }
            while (el_sterse--)
                q.push_back(el);
        }
        q.push_back(el);
        if (i >= k) {
            sum += q.front();
            q.pop_front();
        }
    }
    fout << sum;
    return 0;
}