Cod sursa(job #1243400)

Utilizator drywaterLazar Vlad drywater Data 15 octombrie 2014 21:24:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <deque>

#define DIM 5000005

using namespace std;

int n, k, a[DIM];
long long sum;

deque <int> d;

int main()
{
    int i;

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

    f >> n >> k;
    for (i = 1; i <= n; ++i)
        f >> a[i];

    for (i = 1; i <= n; ++i) {
        for (;!d.empty() && a[d.back()] >= a[i];)
            d.pop_back();
        d.push_back(i);
        if (i >= k)
            sum += a[d.front()];
        if (d.front() == i - k + 1)
            d.pop_front();
    }
    g << sum;

    f.close();
    g.close();

}