Cod sursa(job #1492708)

Utilizator gabi.cristacheGabi Cristache gabi.cristache Data 28 septembrie 2015 00:02:46
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

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

int main()
{
    deque<int> deq;
    vector<int> v;

    int N, k, x;
    fin >> N >> k;

    for (int i = 0; i < N; ++i) {
        fin >> x;
        v.push_back(x);
    }

    int result = 0;
    for (int i = 0; i < N; ++i) {
        while (!deq.empty() && v[deq.back()] >= v[i])
            deq.pop_back();
        deq.push_back(i);

        if (deq.front() == i - k)
            deq.pop_front();

        if (i >= k - 1)
            result += v[deq.front()];
    }

    fout << result << '\n';

    return 0;
}