Cod sursa(job #3318738)

Utilizator DobraVictorDobra Victor Ioan DobraVictor Data 28 octombrie 2025 15:59:06
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <stdint.h>

const int32_t MAX_N = 5000000;

int32_t vec[MAX_N];
int32_t deq[MAX_N], st = 0, dr = 0;

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

	int32_t n, k;
	fin >> n >> k;
	for(int32_t i = 0; i != n; ++i)
		fin >> vec[i];
	
	int64_t res = 0;
	for(int32_t i = 0; i != n; ++i) {
		while(st != dr && vec[deq[dr - 1]] >= vec[i])
			--dr;
		deq[dr++] = i;

		while(deq[st] <= i - k)
			++st;
		
		if(i - k + 1 >= 0)
			res += vec[deq[st]];
	}

	fout << res << '\n';

	fin.close();
	fout.close();

	return 0;
}