Cod sursa(job #559021)

Utilizator marinutzacatana marina marinutza Data 17 martie 2011 16:09:56
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<cstdio>
using namespace std;
int x[30],n,k;
void scrie_sol(int k)
{
	int i;
	for(i=1;i<=n;i++)
	{
		printf("%d ",x[i]);
	}
	printf("\n");
}
bool corect (int k)
{
	int i;
	for(i=1;i<k;i++)
	{
		if(x[k]==x[i])
		{
			return false;
		}
	}
	return true;
}
int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	k=1;
	x[k]=0;
	while(k!=0)
	{
		if(x[k]<n)
		{
			x[k]++;
			if(corect(k))
			{
				if(k==n)
				{
					scrie_sol(n);
				}
				else
				{
					k++;
					x[k]=0;
				}
			}
		}
		else
		{
			k--;
		}
	}
	return 0;
}