Cod sursa(job #2568006)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 3 martie 2020 20:09:56
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <cmath>
#include <string>
#include <cstring>
#define ll long long

using namespace std;

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

    int n, k;
    in >> n >> k;
    vector<int> v(n + 1, 0);
    for(int i = 1; i <= n; i ++)
        in >> v[i];

    vector<int> d(n + 1, 0);
    int l = 1, r = 0;
    ll ans = 0;
    for(int i = 1; i <= n; i ++) {
        while(l <= r && v[d[r]] > v[i])
            r --;
        d[++ r] = i;
        while(l <= r && i - d[l] + 1 > k)
            l ++;
        if(i >= k)
            ans += (1LL * v[d[l]]);
    }
    out << ans;

    return 0;
}