Cod sursa(job #1780219)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 15 octombrie 2016 22:27:53
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <deque>
#define NMAX 5000001

using namespace std;

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

deque<int> d;
int a[NMAX];

int main()
{
    int n, k;
    in >> n >> k;
    for (int i = 1; i <= n; i++)
        in >> a[i];
    in.close();
    int s = 0;
    for (int i = 1; i <= n; i++)
    {
        while (d.size() > 0 && a[i] <= a[d.back()])
            d.pop_back();
        d.push_back(i);
        if (d.front() == (i - k))
            d.pop_front();
        if (i >= k)
            s += a[d.front()];
    }
    out << s << "\n";
    out.close();
    return 0;
}