Cod sursa(job #3128253)

Utilizator KrisI77Iacovita Cristian KrisI77 Data 9 mai 2023 03:20:35
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb

#include <fstream>

int main() {
	std::ifstream fin("deque.in");
	std::ofstream fout("deque.out");

	int n, k;
	long long s = 0;
	int* v = new int[5000000] {0};

	int* dq = new int[5000000] {0};
	int begin = 1, end = 0;

	fin >> n >> k;
	for (int i = 0; i < n; ++i)
		fin >> v[i];

	for (int i = 0; i < n; ++i) {
		while (begin <= end and v[i] <= v[dq[end]])
			--end;

		++end;
		dq[end] = i;

		if (dq[begin] == i - k)
			++begin;
		if (i + 1 >= k)
			s += v[dq[begin]];
	}
	fout << s;

	delete[] v;
	delete[] dq;
	return 0;
}