Cod sursa(job #799693)

Utilizator Ionut228Ionut Calofir Ionut228 Data 19 octombrie 2012 20:53:02
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
using namespace std;

ifstream f("permutari.in");
ofstream g("permutari.out");

int n,k,x[100];

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

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

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

int solutie ()
{
	if(k==n)
		return 1;
	else
		return 0;
}

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

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

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