Cod sursa(job #263391)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 20 februarie 2009 12:25:03
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

const int N=9;

int n,nrs=0,sol[N];
char marc[N],afisat;

void afisare()
{
	if (afisat)
		printf ("\n");
	else
		afisat = 1;
	for (int i = 1; i <= nrs; ++i)
		if (i == 1)
			printf ("%d",sol[1]);
		else
			printf (" %d",sol[i]);
	
}

void avansare(int poz)
{
	if (poz > n)
		afisare();
	for (int i = 1; i <= n; ++i)
		if (!marc[i])
		{
			marc[i] = 1;
			++nrs;
			sol[nrs] = i;
			avansare(poz+1);
			--nrs;
			marc[i] = 0;
		}
}

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