Cod sursa(job #2973740)

Utilizator AnSeDraAndrei Sebastian Dragulescu AnSeDra Data 1 februarie 2023 20:02:11
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <queue>

using namespace std;

deque<pair<int, int>> dq;

int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");

    int n, x, k;
    long long sum;

    fin >> n >> k;

    sum = 0;
    for(int i = 1; i <= n; i++){
        fin >> x;

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

        dq.push_back({x, i});

        if(i >= k){
            while(!dq.empty() && dq.front().second < i - k + 1){
                dq.pop_front();
            }
            sum += dq.front().first;
        }
    }

    fout << sum;

    return 0;
}