Cod sursa(job #1677474)

Utilizator cyber_ghSoltan Gheorghe cyber_gh Data 6 aprilie 2016 16:46:28
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <deque>
#include <algorithm>

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long n, k, A[5000010],s;

deque <int> D;

void add(int a) {
	while (!D.empty()&&A[D.back()] >= A[a])D.pop_back();
	D.push_back(a);
	while (a - D.front() + 1 > k)D.pop_front();

}

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

	}
	for (int i = 1; i <= k; i++) {
		add(i);
	}
	s += A[D.front()];
	for (int i = k + 1; i <= n; i++) {
		add(i);
		s += A[D.front()];

	}
	fout << s;
	return 0;
}