Cod sursa(job #2947971)

Utilizator alexlazuLazureanu Alexandru Ioan alexlazu Data 26 noiembrie 2022 23:37:09
Problema Deque Scor 60
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");

long long int v[5000001], queue[5000001];

int main()
{
	long long int n, k, i, inc = 1 , sf = 1 , 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;
}