Cod sursa(job #592572)

Utilizator cnt_tstcont teste cnt_tst Data 29 mai 2011 09:30:10
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>

#define DIM 5000010

long long S, V[DIM];
int D[DIM];

int i, N, K, p, u;

int main() {
	FILE *f = fopen("deque.in","r");
	fscanf(f,"%d %d",&N,&K);
	p = 1;u = 0;
	for (i=1;i<=N;i++) {
		fscanf(f,"%lld",&V[i]);
		while (p<=u && V[i]<=V[D[u]])
			u--;
		D[++u] = i;
		if (i>K && D[p]<i-K+1)
			p++;
		if (i>=K)
			S = S + V[D[p]];
	}
	FILE *g = fopen("deque.out","w");
	fprintf(g,"%lld",S);
	fclose(g);
	fclose(f);
	return 0;
}