Cod sursa(job #3307451)

Utilizator mihai.25Calin Mihai mihai.25 Data 20 august 2025 19:58:23
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

#include <vector>

#include <deque>

using namespace std;

ifstream fin ("deque.in");

ofstream fout ("deque.out");

int main () {

	int n, k;

	fin >> n >> k;

	vector <long long> v (n + 1);

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

	deque <int> dq;

	for (int i = 1; i <= n; ++i) {

		while (!dq.empty() && v[dq.back()] >= v[i])
			dq.pop_back();	// eliminam elementele pentru ca nu vor putea fi minimul
		
		dq.push_back(i);

		if (dq.front() <= i - k)
			dq.pop_front(); // eliminam elementul pentru ca am iesit din fereastra respectiva
		
		if (i >= k)
			sum += v[dq.front()]; // adaugam minimul
	}

	fout << sum;

	return 0;
}