Cod sursa(job #404691)

Utilizator legendarulDavid Anton Erculescu legendarul Data 26 februarie 2010 15:41:47
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream.h>

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

int st[9],n;

int valid(int k)
{
	int i;

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

	return 1;
}

void solutie()
{
	int i;

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

void back()
{
	int up,k;
	k=1;
	st[k]=0;

	while(k)
	{
		up=0;
		while(!up&&st[k]<n)
		{
			st[k]++;
			if(valid(k))
			{
				up=1;
			}
		}

		if(up)
		{
			if(n==k)
			{
				solutie();
			}
			else
			{
				k++;
				st[k]=0;
			}
		}
		else
		{
			k--;
		}
	}
}

int main()
{
	fin>>n;

	back();

	return 0;
}