Cod sursa(job #1243384)

Utilizator drywaterLazar Vlad drywater Data 15 octombrie 2014 21:09:27
Problema Deque Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>

#define DIM 5000005
#define MARE 10000001

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];

    int m = MARE;
    for (i = 1; i <= n; ++i) {
        for (;!d.empty() && a[d.front()] >= a[i];)
            d.pop_front();
        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();

}