Cod sursa(job #2881292)

Utilizator MoryokaVlaviano Mario Moryoka Data 30 martie 2022 13:41:36
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream input("deque.in");
ofstream output("deque.out");

struct Numar{
    int valoare;
    int pozitie;
};

int main(){
    int n, k;
    long long s = 0;

    deque<Numar> dq;
    Numar x;

    input>>n>>k;

    for(int i = 1; i <= k; i++){
        input>>x.valoare;
        x.pozitie = i;

        while(!dq.empty() && dq.back().valoare >= x.valoare){
            dq.pop_back();
        }

        dq.push_back(x);
    }
    
    s = dq.front().valoare;

    for(int i = k + 1; i <= n; i++){
        input>>x.valoare;
        x.pozitie = i;

        while(!dq.empty() && dq.back().valoare >= x.valoare){
            dq.pop_back();
        }

        dq.push_back(x);

        while(dq.front().pozitie <= i - k){
            dq.pop_front();
        }

        s += dq.front().valoare;
    }

    output<<s;

    return 0;
}