Cod sursa(job #2727766)

Utilizator Stefan_DomuncoStefan Domunco Stefan_Domunco Data 22 martie 2021 14:32:55
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    int n, k, i, val;
    long long sol = 0;
    ///val, poz
    deque <pair <int, int> > minim;

    fin >> n >> k;
    for(i = 1; i <= k; ++i){
        fin >> val;
        while(!minim.empty() && minim.back().first >= val){
            minim.pop_back();
        }

        minim.push_back({val, i});
    }

    sol += minim.front().first;

    for(; i <= n; ++i){

        if(minim.front().second < i - k + 1){
            minim.pop_front();
        }

        fin >> val;

        while(!minim.empty() && minim.back().first >= val){
            minim.pop_back();
        }
        minim.push_back({val, i});

        sol += minim.front().first;
    }

    fout << sol;

    return 0;
}