Cod sursa(job #672557)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 2 februarie 2012 16:12:12
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>


struct ceva
{ int poz,nr;};

ceva a[5000005];
ceva cv;

long long s;


int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	int n,k,i,p=1,u=0,nr;
	scanf("%d%d",&n,&k);
	for(i=1;i<=k;++i)
	{
		scanf("%d",&nr);
		while(a[u].nr>=nr&&u>=1)
			--u;
		++u;
		a[u].nr=nr;
		a[u].poz=i;
	}
	s=a[1].nr;
	for(i=k+1;i<=n;++i)
	{
		if(i-a[p].poz>=k)
			++p;
		scanf("%d",&nr);
		while(a[u].nr>nr&&u>=p)
			u--;
		++u;
		a[u].nr=nr;
		a[u].poz=i;
		s+=a[p].nr;
	}
	printf("%I64d\n",s);
	return 0;
}