Cod sursa(job #2887418)

Utilizator Rincu_StefaniaRincu Stefania Rincu_Stefania Data 9 aprilie 2022 16:25:53
Problema Deque Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <stdio.h>

using namespace std;
#define maxn 5000010

int n, k, i, p, u, s;
int a[maxn], Deque[maxn];

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

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

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

	p = 1;
	u = 0;

	for(i = 1; i <= n; i++)
	{
		while(p <= u && a[i] <= a[Deque[u]]) u--;
		Deque[++u] = i;
		if(Deque[p] == i-k) p++;
		if (i >= k) s += a[Deque[p]];
	}

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

	return 0;
}