Cod sursa(job #2741525)

Utilizator As932Stanciu Andreea As932 Data 16 aprilie 2021 12:16:04
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
//#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

typedef long long ll;
const int nMax = 5e6 + 5;

int n, k, v[nMax];
ll ans;

void read(){
    cin >> n >> k;

    for(int i = 1; i <= n; i++)
        cin >> v[i];
}

void solve(){
    deque <int> dq;

    for(int i = 1; i <= n; i++){
        while(!dq.empty() && i - dq.front() >= k)
            dq.pop_front();

        while(!dq.empty() && v[i] <= v[dq.back()])
            dq.pop_back();

        dq.push_back(i);

        if(i >= k)
            ans += v[dq.front()];
    }

    cout << ans;
}

int main()
{
    read();
    solve();

    return 0;
}