Cod sursa(job #2813987)

Utilizator Stefan_XTRadu Stefan Rares Stefan_XT Data 7 decembrie 2021 12:19:08
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <iostream>
#include <queue>
using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

void Add(deque<int> &dq, int x){
    while(!dq.empty()&& dq.back() > x)
        dq.pop_back();

    dq.push_back(x);
}

int main(){
    deque<int> dq, nums;
    int N, K, i, j, x;
    long long sum = 0;

    f >> N >> K;
    for (i = 1; i <= K; i++){
        f >> x;
        nums.push_back(x);
        Add(dq, x);
    }

    sum += dq.front();
    for (i = K + 1; i <= N; i++){
        cout << dq.front() << " ";

        if (dq.front() == nums.front())
            dq.pop_front();
        f >> x;
        Add(dq, x);

        nums.push_back(x);
        nums.pop_front();

        sum += dq.front();
    }

    g << sum;
    return 0;
}