Cod sursa(job #3004081)

Utilizator dariustgameTimar Darius dariustgame Data 16 martie 2023 09:35:31
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <climits>

using namespace std;

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

struct nr
{
	long long val;
	long long pos;
};

int n, k;
long long sum = 0;
deque<nr> sec;

int main()
{
	fin >> n >> k;
	for (int i = 0; i < n; i++)
	{
		long long a;
		fin >> a;
		//if (!sec.empty())
		//{
		//	cout << sec.front().val  << " - " << sec.front().pos << " || " << sec.back().val << " - " << sec.back().pos << '\n';
		//}
		while (!sec.empty() && sec.back().val >= a)
		{
			sec.pop_back();
		}
		sec.push_back({ a, i });
		while (!sec.empty() && sec.front().pos <= i - k)
		{
			sec.pop_front();
		}
		if (i >= k - 1)
			sum += sec.front().val;
	}
	fout << sum;
}