Cod sursa(job #154789)

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

int n, st[20], v[20];
char buffer[10000000];
int bufferi = 0;

#define p n

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

	if(k < n)
	{
		for(int i = 1; i <= p; i++)
		{	
			if(!v[i])
			{
				st[k] = i;
				v[i] = 1;
				back(k+1);	
				v[i] = 0;
			}
		}
	}
	else
	{
		for(int i = 0; i < n; i++)
		{
//			printf("%d ", st[i]);
	
			buffer[bufferi++] = st[i]+'0';
			buffer[bufferi++] = ' ';
		}
		buffer[bufferi++] = '\n';
		
	}
}

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

	scanf("%d", &n);

	back(0);

	buffer[bufferi] = '\0';

	printf("%s", buffer);
	return 0;
}