Cod sursa(job #2999840)

Utilizator MateitzaMatei Dinu Mateitza Data 11 martie 2023 16:39:20
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

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

std::vector<long long> Arr;
std::deque<long long> Deque;
long long S = 0;

int main()
{
	int n, k;
	fin >> n >> k;

	for (int i = 1; i <= n; i++) {
		int nr;
		fin >> nr;
		Arr.push_back(nr);
	}

	for (int i = 1; i <= n; i++)
	{
		while (!Deque.empty() && Arr[i] <= Arr[Deque.back()]) {
			Deque.pop_back();
		}
		Deque.push_back(i);

		if (Deque.front() == i - k) {
			Deque.pop_front();
		}

		if (i >= k) {
			S += Arr[Deque.front()];
		}
	}

	fout << S;

	return 0;
}