Cod sursa(job #473335)

Utilizator robigiirimias robert robigi Data 28 iulie 2010 22:18:48
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
// Deque.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
#include "stdio.h"

FILE *f=fopen("deque.in", "r");
FILE *g=fopen("deque.out", "w");

int n, v[5001], k, d[5001], fr, bk;
long long sol;


void read()
{
	fscanf(f, "%d%d", &n, &k);
	for (int i=1; i<=n; ++i)
	{
		fscanf(f, "%d", &v[i]);
	}
}

void program()
{
	fr=1;
	bk=0;
	for (int i=1; i<=n; ++i)
	{
		while (fr<=bk && v[i] <= v[d[bk]]) bk--;
		d[++bk]=i;
		if (d[fr]==i-k) fr++;
		if (i>=k) sol+=v[d[fr]];
	}
}


int main()
{
	read();
	program();
	fprintf(g, "%lld", sol);
	return 0;
}