Cod sursa(job #2730316)

Utilizator SteFUNGrigorescu Stefan Dumitru SteFUN Data 26 martie 2021 01:15:35
Problema Deque Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

std::ifstream f("deque.in");
std::ofstream g("deque.out");

#define cout_std std::cout
#define cin_std std::cin

int v[5000000];  // <-- deque

int main()
{
	int n, k;
	f >> n >> k >> v[0];
	int minim = v[0], poz = 0;
	for (int dr = 1; dr < k; dr++)
	{
		f >> v[dr];
		if (v[dr] <= minim)
		{
			minim = v[dr];
			poz = dr;
		}
	}
	int st = 0;
	long long suma = minim;
	for (int dr = k; dr < n; dr++)
	{
		f >> v[dr];
		st++;
		if (v[dr] <= minim)
		{
			minim = v[dr];
			poz = dr;
		}
		else if (st > poz)
		{
			poz = st;
			int pozaux = st;
			while (pozaux < dr)
			{
				pozaux++;
				if (v[pozaux] <= v[poz])
					poz = pozaux;
			}
			minim = v[poz];
		}
		suma += minim;
	}
	g << suma;
	return 0;
}