Cod sursa(job #1257753)

Utilizator valiro21Valentin Rosca valiro21 Data 8 noiembrie 2014 10:15:34
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <queue>

using namespace std;

int n, k, v[5000001];
long long s;

deque<int> deq;

int main()
{
    ifstream fin ("deque.in");
    ofstream fout ("deque.out");
    fin >> n >> k;
    for (int i = 1; i <= n; i++)
        fin >> v[i];

    for (int i = 1; i <= k; i++) {
        if (!deq.empty() && deq.front () == i-k )
            deq.pop_front ();
        while (!deq.empty() && v[deq.back()] >= v[i])
            deq.pop_back ();
        deq.push_back (i);
        if (i >= k)
            s += v[deq.front ()];
    }

    fout << s;

    return 0;
}