Cod sursa(job #620730)

Utilizator ibicecIT Zilla ibicec Data 16 octombrie 2011 16:00:18
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include <cstdlib>

int n, *a;

void print_sol()
{
	for (int i=0; i<n; i++)
		printf("%d ", a[i]);
	printf("\n");
}

int valid(int i, int pos)
{
	for (int j=0; j<pos; j++)
		if ( a[j] == i )
			return 0;
	return 1;
}

void solve(int pos)
{
	for (int i=1; i<=n; i++)
		if ( valid(i, pos) )
		{
			a[pos] = i;
			if ( pos == n-1 )
				print_sol();
			else
				solve(pos+1);
		}
}

int main()
{
	freopen("permutari.in", "r", stdin);
	freopen("permutari.out", "w", stdout);

	scanf("%d", &n);

	a = (int*) malloc( n*sizeof(int) );

	solve(0);
}