Cod sursa(job #154770)

Utilizator oumbraPaul Filimoon oumbra Data 11 martie 2008 14:11:53
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <cstring>

int n, st[20], v[20];

#define p n

void back(int k)
{
	int f = 1;

	if(k < n)
	{
		for(int i = 1; i <= p; i++)
		{	
			st[k] = i;
			back(k+1);
		}
	}
	else
	{
		memset(v, 0, sizeof(v));

		for(int i = 0; i < n; i++)
		{	
			v[st[i]]++;
			if(v[st[i]] > 1)
				f = 0, i = 666;
		}

		if(f)
		{
			for(int i = 0; i < n; i++)
			{
				printf("%d ", st[i]);
			}
		printf("\n");
		}
	}
}

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

	scanf("%d", &n);

	back(0);

	return 0;
}