Cod sursa(job #1873465)

Utilizator Rocamadour1497Alexandru Martiniuc Rocamadour1497 Data 9 februarie 2017 04:36:39
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;

int main()
{

    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);
	int n, i, j, k, a[5000005], deque[5000005];
	scanf("%d %d ", &n, &k);
	for (i = 1; i <= n; i++)  scanf("%d ", &a[i]);
	int st = 1, dr = 0;
	long long sum = 0;
	for (i = 1; i <= n; i++)
	{
		while (st <= dr && a[i] <= a[deque[dr]])
			dr--;
		deque[++dr] = i;
		if (deque[st] == i - k) st++;
		if (i - k>=0)
		{
			sum += a[deque[st]];
		}
	}
	 printf("%lld\n", sum);
}