Cod sursa(job #2371688)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 6 martie 2019 19:03:11
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <queue>
#include <map>
#include <deque>
#define ll long long
#define lsb(x) (x & -x)

using namespace std;

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


int main() {

    int n, k;
    in >> n >> k;
    vector<int> v(n + 1, 0);
    vector<int> d(n + 1, 0);
    int le = 1, ri = 0;
    ll ans = 0;
    for(int i = 1; i <= n; i ++) {
        in >> v[i];

        while(le <= ri && v[d[ri]] > v[i])
            ri --;
        d[++ri] = i;

        if(i >= k)
            ans += 1LL * v[d[le]];

        if(i - d[le] == k - 1)
            le ++;
    }
    out << ans;

    return 0;
}