Cod sursa(job #2371682)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 6 martie 2019 19:00:00
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 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);
    deque<int> d;
    ll ans = 0;
    for(int i = 1; i <= n; i ++) {
        in >> v[i];

        while(d.size() && v[d.back()] > v[i])
            d.pop_back();
        d.push_back(i);

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

        cout << v[d.front()] << endl;

        if(i - d.front() == k - 1)
            d.pop_front();
    }
    out << ans;

    return 0;
}