Cod sursa(job #990438)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 28 august 2013 12:20:00
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>

using namespace std;

int q[5000005],poz[5000005];

int main()
{
	int sol,n,k,x,pr,ul,i;
	freopen ("deque.in","r",stdin);
	freopen ("deque.out","w",stdout);
	scanf("%d%d", &n,&k);
	sol=0;
	q[0]=-20000000;pr=1;ul=0;
	for(i=1;i<=k;i++)
	{
		scanf("%d", &x);
		while(pr<=ul && x<=q[ul])
			ul--;
		q[++ul]=x;
		poz[ul]=i;
	}
	sol+=q[pr];
	for(i=k+1;i<=n;i++)
	{
		scanf("%d", &x);
		while((poz[pr]+k)<i+1)
			pr++;
		while(pr<=ul && x<=q[ul])
			ul--;
		q[++ul]=x;
		poz[ul]=i;
		sol+=q[pr];
	}
	printf("%d\n", sol);
	return 0;
}