Cod sursa(job #1196799)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 9 iunie 2014 01:41:10
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
#include<stdlib.h>
int st[10],n,k;
void Init()
{ st[k]=0; }
int Am_Succesor() {
	if(st[k]<n) {
		st[k]++;
		return 1;
	}
	return 0;
}
int E_valid(){
	for(int i=1;i<k;i++)
			if(st[i]==st[k]) return 0;
	return 1;
}
int Solutie()
	{ return k==n; }
void Tipar() {
	for( int i=1;i<=n;i++)
		printf("%d ",st[i]);
	printf("\n");
}
void back(){
int AS;
k=1;Init();
while(k>0){
	do {} while((AS=Am_Succesor()) && !E_valid());
	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);
	back();
	fclose(stdin);
	fclose(stdout);
return 0;
}