Cod sursa(job #2834502)

Utilizator NebunuWeedCiucanu Stefan NebunuWeed Data 17 ianuarie 2022 09:56:00
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <deque>
using namespace std;

#define f
#define lld long long int

#ifdef f
    ifstream cin("deque.in");
    ofstream cout("deque.out");
#else
    #include <iostream>
#endif // f

class intp {
public:
    int d, p;
};

intp v[5000000];

int main() {
    int n, k;
    cin >> n >> k;
    --k;
    for (int i = 0; i < n; ++i) {
        cin >> v[i].d;
        v[i].p = i;
    }
    deque<intp> q;
    q.push_back(v[0]);
    lld sum{};
    cout << '\n';
    for (int i = 1; i < n; ++i) {
        //cout << q.front().d << ' ';
        if (i - k > q.front().p) {
            cout << q.front().d << ' ';
            sum += q.front().d;
            q.pop_front();
        }

        while(!q.empty() && q.back().d > v[i].d)
            q.pop_back();
        q.push_back(v[i]);
    }
    //cout << sum;
    return 0;
}