Cod sursa(job #218705)

Utilizator adelinavVidovici Adelina adelinav Data 3 noiembrie 2008 09:44:24
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>

int st[20],n,i,k;

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

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

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

int solutie()
{
if (n==k) return 1;
return 0;
}

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

void bkt(){
int as,ev;
k=1;
init();
while (k){
	do {as=succesor();
	    ev=valid();}
		while(as && !ev);
	if (as) if (solutie()) tipar();
		else    {
			k++;
			init();
			}
	else k--;
	}
}

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