Cod sursa(job #800461)

Utilizator adrian79Dobrica Adrian adrian79 Data 21 octombrie 2012 17:49:51
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>


int n, st[100];


void init(int k)
{
	st[k]=0;
}

int succesor(int k)
{
	if (st[k]<n) 
		
		{	st[k]++;
			return 1;
		}

return 0;
}

int valid(int k)
{ int i=0;

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

int solutie(int k)
{
	return k==n;
}

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

void back(int k)
{ 
	init(k);
	while (succesor(k))
		if (valid(k)) 
			if (solutie(k)) tipar(k);
			else back(k+1);
}

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