Cod sursa(job #2947975)

Utilizator alexlazuLazureanu Alexandru Ioan alexlazu Data 26 noiembrie 2022 23:40:24
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[5000010], queue[5000010];

int main()
{
	int n, k, i, inc = 1 , sf = 1;
	long long int s=0;
	in >> n >> k;
	for (i = 1; i <= n; i++)
		in >> v[i];
	queue[inc] = 1;
	for (i = 2; i <= k - 1; i++)
	{
		while (v[i] < v[queue[sf]] && inc <= sf)
		{
			sf--;
		}
		queue[++sf] = i;
		while (queue[inc] == i - k)
			inc++;
	}
	for (i = k; i <= n; i++)
	{
		while (v[i] < v[queue[sf]] && inc <= sf)
		{
			sf--;
		}
		sf++;
		queue[sf] = i;
		while (queue[inc] == i - k)
			inc++;
		s += v[queue[inc]];
	}
	out << s;
}