Cod sursa(job #1609352)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 22 februarie 2016 19:12:56
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;

ifstream fi("deque.in");
ofstream fo("deque.out");

int v[5000001], d[5000001];

int main()
{
	int n, k, i, p, q, sum = 0;
	fi >> n >> k;
	for (i = 1; i <= n; i++)
		fi >> v[i];
	p = q = 1;
	if (v[1]<v[2])
		d[p] = 1;
	else d[p] = 2;
	sum = 0;
	fo << "minimele sunt : ";
	for (i = 3; i <= n; i++)
	{
		//intra v[i]
		while (p <= q && v[d[q]] >= v[i]) q--;
		q++;
		d[q] = i;
		if (d[p] < i- k + 1 ) p++;
		fo << v[d[p]] << " ";
		sum += v[d[p]];
		if (d[p] == 1) p++;
	}
	fo << "\n";
	fo << sum;
}