Cod sursa(job #2098339)

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

using namespace std;

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

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

int main()
{
	long 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;
}