Cod sursa(job #1750898)

Utilizator delia_ioanaCeapa Delia Ioana delia_ioana Data 31 august 2016 13:58:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#include <cstring>
#include <iostream>
#define maxn 5000010

using namespace std;
int nums[maxn], deque[maxn], n, k, front = 1, back = 0;
long long sum = 0;

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

	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("%lli\n", sum);

	return 0;
}