Cod sursa(job #3213419)

Utilizator Manolea_Teodor_StefanManolea Teodor Stefan Manolea_Teodor_Stefan Data 13 martie 2024 09:37:33
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
//#pragma GCC optimize("O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct cv {
    int poz;
    int val;
};


int n,k;
deque<cv> dq;
int i;
long long ans;
int main() {
    fin >> n >> k;
    for (i = 1; i <= k; i++) {
        int rd;
        fin >> rd;
        while (!dq.empty() && dq.back().val > rd)
            dq.pop_back();
        dq.push_back({i,rd});
    }
    ans += dq.front().val;
    for (; i <= n; i++) {
        int rd;
        fin >> rd;
        while (!dq.empty() && dq.front().poz <= i - k)
            dq.pop_front();
        while (!dq.empty() && dq.back().val > rd)
            dq.pop_back();
        dq.push_back({i,rd});
        ans += dq.front().val;
    }
    fout << ans;
    return 0;
}