Cod sursa(job #1598924)

Utilizator ericptsStavarache Petru Eric ericpts Data 13 februarie 2016 14:36:56
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <queue>
#include <fstream>
#include <vector>

using namespace std;

deque<int> D;

vector<int> v;
int n, k;

long long sum = 0;

int main() {
    ifstream in("deque.in");
    in >> n >> k;
    v.resize(n);
    for(int i = 0; i < n;++i)
        in >> v[i];

    for(int i = 0; i < n; ++i) {
        while(!D.empty() && v[i] < v[D.front()])
            D.pop_front();

        D.push_front(i);

        while(!D.empty() && D.back() < i - k + 1)
            D.pop_back();

        sum += v[D.back()];
    }

    ofstream out("deque.out");

    out << sum << "\n";
    return 0;
}