Cod sursa(job #1750892)

Utilizator delia_ioanaCeapa Delia Ioana delia_ioana Data 31 august 2016 13:44:19
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

int main() {
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "w", stdout);
	int nums[5000010], deque[5000010];
	int n, k, front = 1, back = 0;
	long long sum = 0;

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

	for (int i = 1; i <= n; i ++) 
		scanf("%d", &nums[i]);

	for (int i = 1; i <= n; i ++) {
		while (front <= back && nums[i] <= nums[deque[back]])
			back --;

		deque[++back] = i;

		if (deque[front] == i - k)
			front ++;
		if (i >= k)
			sum += nums[deque[front]];
	}

	printf("%lld\n", sum);

	return 0;
}