Cod sursa(job #821249)

Utilizator Victor10Oltean Victor Victor10 Data 21 noiembrie 2012 22:07:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <deque>
using namespace std;

int v [5000010];

int main()
{
	deque <int> scv; //pe prima poz in scv am pozitia minimului, pe pozitia oglindita am minimul

	
	ifstream f("deque.in");
	ofstream g("deque.out");
	
	int i, n, k, nrc;
	long long rez = 0;
	f >> n >> k;
	for (i = 1; i <= n; ++ i)
	{
		f >> v [i];
		while ( !scv .empty () && v [scv .back ()] > v [i]) scv .pop_back ();
		scv .push_back (i);
		if (scv .front () <= i - k) scv .pop_front ();
		if (i >= k) rez += v [scv .front()];
	}
	
	g << rez << '\n';
}