Cod sursa(job #2155196)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 7 martie 2018 17:59:00
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int k, n, st[16], i, as, ev, p;


void init()
{
	st[k] = 0;
}


int succesor()
{
	if (st[k]<n)
	{
		st[k]++;
		return 1;
	}
	else
		return 0;
}


int valid()
{
	if (k >= 2 && st[k] <= st[k - 1])
		return 0;
	for (i = 1; i<k; i++)
		if (st[i] == st[k])

			return 0;
	return 1;
}


int solutie()
{
	return k == p;
}


void tipar()
{
	for (i = 1; i <= p; i++)
		g << st[i] << " ";
	g << "\n";
}
int main()
{
	f >> n >> p;
	k = 1;
	init();
	while (k)
	{
		do {
			as = succesor();
			if (as)
				ev = valid();
		} while (!(as&&ev || !as));
		if (as)
		{
			if (solutie())
				tipar();
			else
			{
				k++;
				init();
			}
		}
		else
			k--;
	}
	return 0;
}