Cod sursa(job #497461)

Utilizator jaizzarahRazvan Damachi jaizzarah Data 2 noiembrie 2010 16:29:54
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;

ifstream in("permutari.in");
ofstream out("permutari.out");
int st[30],k,i,n;

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

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

int valid()
{
	for (i=1;i<k;i++)
		if (st[i]==st[k])
			return 0;
	return 1;
}

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

void tipar()
{
	for (i=1;i<=n;i++)
		out<<st[i]<<" ";
	out<<endl;
}

void bkt()
{
	int as;
	k=1;
	while (k>=1)
	{
		do
		{}
		while ((as=succesor()) && (!valid()));
		if (as)
		{
			if (solutie())
				tipar();
			else
			{
				k++;
				init();
			}
		}
		else
			k--;
	}
}

int main()
{
	in>>n;
	bkt();
	return 0;
}