Cod sursa(job #145642)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 29 februarie 2008 09:22:05
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>
int s[20],n;
int valid(int k)
	{
	int i;
	for(i=1;i<k;i++)
		if(s[k]==s[i]) return 0;
	return 1;
	}
void solutie()
	{
	int i;
	for(i=1;i<=n;i++)
		printf("%d ",s[i]);
	printf("\n");
	}
void btk()
	{
	int k,up;
	k=1;
	s[k]=0;
	while(k)
		{
		up=0;
		while(!up && s[k]<n)
			{
			s[k]++;
			if(valid(k)) up=1;
			}
		if (up)
			{
			if(k==n) solutie();
			else { k++; s[k]=0; }
			}
		else k--;
		}
	}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
btk();
fclose(stdout);
}