Cod sursa(job #2210951)

Utilizator memecoinMeme Coin memecoin Data 8 iunie 2018 18:30:54
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <deque>

using namespace std;

struct element {
	int value;
	int index;
};

deque<element> d;

int n, k, x;
int64_t sum;

int main() {
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "w", stdout);

	scanf("%d %d", &n, &k);

	for (int i = 0; i < n; ++i) {
		scanf("%d", &x);

		while (d.empty() == false && d.back().value > x) {
			d.pop_back();
		}
		d.push_back({ x, i });

		if (d.front().index <= i - k) {
			d.pop_front();
		}

		if (i >= k - 1) {
			sum += d.front().value;
		}
	}

	printf("%d", sum);

	return 0;
}