Cod sursa(job #1779060)

Utilizator aaether14Dinescu Stefan Cristian aaether14 Data 14 octombrie 2016 18:55:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <deque>
#include <stdint.h>
 
 
 
int val[5000010];
 
int main()
{
	int32_t n,k;
	int64_t sum = 0;
	std::deque<int32_t> solve;


	std::ifstream fin("deque.in");
	fin >> n >> k;
	for (int32_t i = 0; i < n; ++i)
		fin >> val[i];
	fin.close();

	
	for (int32_t i = 0; i < n; ++i)
	{
		while (!solve.empty() && val[i] <= val[solve.back()])
			solve.pop_back();
		solve.push_back(i);
		if (solve.front() <= i-k)
			solve.pop_front();
		if (i >= k-1)
			sum += val[solve.front()];

	}
	std::ofstream fout("deque.out");
	fout << sum;
	fout.close();


	return 0;
}