Cod sursa(job #181168)

Utilizator razyelxrazyelx razyelx Data 17 aprilie 2008 22:06:23
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
int st[100],k,n,as,ev;


void init(){
	st[k] = 0;
}
int sol(){
	return n==k;
}
int valid(){
	for(int i = 1; i < k; i++)
		if (st[k] == st[i]) return 0;
	return 1;
}
int succ(){
	if (st[k]>n)return 1;
	else return 0;
}

void pt(){

	FILE*out = fopen("permutari.out","w");
	for(int i=1; i<=k; i++)
		fprintf(out, "%d\n", st[i]);
}
void bt(){
	k = 1;
	init();
	while (k){
		as = 1;
		ev = 0;
		while (as && !ev){
			st[k]++;
			as = succ();
			ev = valid();

		}
		if (as){
			if(sol())
				pt();
			else{
				k++;
				init();
			}

		}else{
			k--;
			init();
		}
	}
}
int main(){

	FILE*in  = fopen("permutari.in","r");
	fscanf(in,"%d",&n);
	bt();
	return 0;
}