Cod sursa(job #535366)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 17 februarie 2011 09:38:51
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>

using namespace std;

const char iname[] = "deque.in";
const char oname[] = "deque.out";

ifstream fin(iname);
ofstream fout(oname);

int n, k, i, j, mini;
int Deque[500005];
int v[500005], Front, Back;

int main()
{	
	fin >> n >> k;
	for(i = 1; i <= n; i ++)
		fin >> v[i];
	Front = 1, Back = 0;
	for(i = 1; i <= n; i ++)
	{
		while(v[i] <= v[Deque[Back]] && Back > 0 && Front <= Back)
			Back--;
		Deque[++Back] = i;
		if(Deque[Front] <= i - k)
			++Front;
		if(i >= k)
			mini = mini + v[Deque[Front]];
	}
	fout << mini << "\n";
}