Cod sursa(job #384752)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 20 ianuarie 2010 21:03:01
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

long v[5001],p[5001];
long long s;

int main()
{
	long n,k,i,c=0,j,x;
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%ld%ld",&n,&k);
	v[1]=10000001;
	for (i=1;i<k+1;i++)
	{
		if (p[1]==i-k)
		{
			--c;
			for (j=1;j<c+1;j++) {v[j]=v[j+1];p[j]=p[j+1];}
		}
		scanf("%ld",&x);
		++c;
		while ((x<v[c-1])&&(c>1)) {--c;}
		v[c]=x;p[c]=i;
	}
	for (i=i;i<n+1;i++)
	{
		if (p[1]==i-k)
		{
			--c;
			for (j=1;j<c+1;j++) {v[j]=v[j+1];p[j]=p[j+1];}
		}
		scanf("%ld",&x);
		++c;
		while ((x<v[c-1])&&(c>1)) {--c;}
		v[c]=x;p[c]=i;s+=v[1];
	}
	printf("%lld",s);
	return 0;
}