Cod sursa(job #256798)

Utilizator ZillaMathe Bogdan Zilla Data 12 februarie 2009 10:50:39
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>



void afis(int);
void back(int,int);
int ok(int);

int st[9],n;

int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	int n;
	scanf("%d",&n);
	back(1,n);
	return 0;
}

void back(int k,int n)
{
	int i;
	if(k>n)
		afis(n);
	else
		{
			for(i=1;i<=n;++i)
				{
					st[k]=i;
					if(ok(k))
						back(k+1,n);
				}
		}
}

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

void afis(int n)
{
	int i;
	for(i=1;i<=n;++i)
		printf("%d ",st[i]);
	printf("\n");
}