Cod sursa(job #1861770)

Utilizator Chirac_MateiChiriac Matei Chirac_Matei Data 29 ianuarie 2017 11:54:20
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin ("secventa.in");
ofstream fout("secventa.out");
int capats, capatd, i, j, n, k,ifin,z;
long long summin;
struct cap
{
	int val, poz;
};
deque<cap> q;
cap x;
int main()
{
	fin >> n >> k;
	z++;
	for (i = 1;i <= k;i++)
	{
		fin >> x.val;
		x.poz = i;
		a[z] = x.val;
		z++;
		while (!q.empty() && q.back().val > x.val)
		{
			q.pop_back();

		}
		q.push_back(x);
	}
	summin = q.front().val;
	capats = 1;
	capatd = k;
	for (i = k + 1;i <= n;i++)
	{
		fin >> x.val;
		a[z] = x.val;
		z++;
		x.poz = i;
		capats++;
		capatd++;
		if (q.front().poz < capats)
		{
			q.pop_front();
		}

		while (!q.empty() && q.back().val > x.val)
		{
			q.pop_back();

		}
		q.push_back(x);
		if (x < summin)
		{
			summin = x;
			ifin = i;
		}
	}
	for (i = ifin;i <= k;i++)
	{
		fout << a[i] << " ";
	}
	return 0;
}