Cod sursa(job #381405)

Utilizator bugyBogdan Vlad bugy Data 10 ianuarie 2010 15:23:22
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<stdio.h>
using namespace std;
int n, k, v[100],as,ev,i;

FILE *f=fopen("permutari.in","r"), *g=fopen("permutari.out","w");

void init()
{
	v[k]=0;
}
int succesor()
{
	v[k]=v[k]+1;
	if(v[k]<=n)
		return 1;
	else return 0;
}
int valid()
{	int i;
	for(i=k-1;i>=1;i--)
		if(v[i]==v[k])
				return 0;
return 1;	
}
int solutie()
{
	if(n==k)
		return 1;
	else return 0;

}
void afisare()
{int i;
for(i=1;i<=n;i++)
	fprintf(g,"%d ",v[i]);

fprintf(g,"\n");

}

void bt()
{	
k=1;
init();
as=1; ev=0;
while(k>0)
{
	as=1; ev=0;
	while(as&&!ev)
	{
		as=succesor();
		if(as)
		ev=valid();
	}
if(as)
	{
	if(solutie())
		afisare();
	else {k++; init();}
	}
else k--;
}
}



int main()
{

fscanf(f,"%d",&n);

bt();
return 0;
}