Cod sursa(job #796384)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 11 octombrie 2012 12:30:19
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");

int x[100],k,n;

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


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

int valid()
{
	int ev=1,i;
	for (i=1;i<=k-1;i++)
		if (x[i]==x[k])
			ev=0;
	return ev;
}

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

void tipar()
{
	int i;
	for (i=1;i<=k;i++)
		g<<x[i]<<" ";
	g<<endl;
}

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

int main()
{
	f>>n;
	back();
	f.close();
	g.close();
	return 0;
}