Cod sursa(job #559288)

Utilizator soriynSorin Rita soriyn Data 17 martie 2011 19:10:35
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>


typedef int stiva;
stiva st[25];
int k,n,as,ev;
void init()
{
	st[k]=0;
}
void tipar()
{
	for(int i=1;i<=n;i++)
		printf("%d ",st[i]);
	printf("\n");
}
int succesor()
{
	if(st[k]<n) {st[k]++;return 1;}
	else return 0;
}

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


void back()
{ 
	k=1;
	init();
	while(k>0)
{
as=1,ev=0;
while(as!=0 && ev==0)
{
	as=succesor();
	if(as)
		ev=valid();
}
  if(as)
		if(k==n) tipar();
	           else {k++,init();}
	else k--;}
}

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