Cod sursa(job #2730328)

Utilizator SteFUNGrigorescu Stefan Dumitru SteFUN Data 26 martie 2021 02:10:44
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

std::ifstream f("deque.in");
std::ofstream g("deque.out");

#define cout_std std::cout
#define cin_std std::cin

int v[5000000], deque[5000000];	// in deque se afla indici pt elemente din v

int main()
{
	int n, k;
	f >> n >> k >> v[0];
	deque[0] = 0;
	int st = 0, dr = 0;
	for (int i = 1; i < k; i++)
	{
		f >> v[i];
		dr++;
		while (dr > st and v[i] <= v[deque[dr-1]])
			dr--;
		deque[dr] = i;
	}
	long long suma = v[deque[st]];
	for (int i = k; i < n; i++)
	{
		f >> v[i];
		if(i - deque[st] + 1 > k)
			st++;
		dr++;
		while (dr > st and v[i] <= v[deque[dr - 1]])
			dr--;
		deque[dr] = i;
		suma += v[deque[st]];
	}
	g << suma;
	return 0;
}