Cod sursa(job #672562)

Utilizator cahemanCasian Patrascanu caheman Data 2 februarie 2012 16:15:51
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<stdio.h>
int x[5000005];
int v[5000005];
int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	int k,n,i,u=0,p=1;
	long long s=0;
	scanf("%d%d",&n,&k);
	for(i=1;i<k;i++)
	{
		scanf("%d",&x[i]);
		while(x[i]<x[v[u]]&&u)
		{
			u--;
		}
		v[++u]=i;
	}
	for(i=k;i<=n;i++)
	{	
		scanf("%d",&x[i]);
		if(i-v[p]==k)
			p++;
		while(x[i]<x[v[u]]&&u>=p)
		{
			u--;
		}
		v[++u]=i;
		s+=x[v[p]];
	}
	printf("%lld",s);
	return 0;
}