Cod sursa(job #1676626)

Utilizator m.scarlat95Scarlat Marius-George m.scarlat95 Data 6 aprilie 2016 01:43:56
Problema Combinari Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("combinari.in");
ofstream fout("combinari.out");

int n, sol[100], p;

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

bool succesor(int k)
{
	if(sol[k] < n)
	{
		sol[k] ++;
		return true;
	}
	return false;
}

bool valid(int k)
{
	for(int i = 1 ; i <= k - 1; ++i)
	{
		if(sol[k] >= sol[i]) 
		{
			return false;
		}
	}

	return true;
}

int solution(int k)
{
	return k == p+1;
}

void display()
{
	for(int i = p; i >= 1; --i)
	{
		fout << sol[i] << " ";
	}
	fout << endl;
}

void bkt(int k)
{
	if(solution(k))
	{
		display();
	}
	else
	{
		init(k);

		while(succesor(k))
		{
			if(valid(k))
			{
				bkt(k + 1);
			}
		}
	}
}

int main(void)
{
	fin >> n >> p;

	bkt(1);
	return 0;
}