Cod sursa(job #2098336)

Utilizator dragos.galeteanu2001Dragos Iulian dragos.galeteanu2001 Data 2 ianuarie 2018 17:50:23
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#include <deque>
#define limit 5000010

using namespace std;

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

deque <int> d;
int n, k, v[limit];
long int sum;

int main()
{
	int i;
	in >> n >> k;
	for (i = 1; i <= n; i++) in >> v[i];

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

	out << sum;

	in.close();
	out.close();
    return 0;
}