Cod sursa(job #1131857)

Utilizator emyll96Constantinescu Emil emyll96 Data 1 martie 2014 19:47:16
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#include<iostream.h>
FILE*A,*B;
int n,k,x[100000];
int aleg(int k)
{
	x[k]++;
	if(x[k]<=n)return 1;else return 0;
}
int verif(int k)
{
	int ok=1,i;
	for(i=1;i<=k-1;i++)if(x[i]==x[k])ok=0;
	return ok;
}
int initial(int k)
{
	int mink;
	mink=0;
	return mink;
}
void solutie()
{
	int i;
	for(i=1;i<=n;i++)fprintf(B,"%d ",x[i]);
	fprintf(B,"\n");
}
void bak()
{
	int a,v;
	k=1;
	x[k]=initial(k);
	while(k!=0)
	{
		a=aleg(k);
		v=verif(k);
		while(a==1&&v==0){a=aleg(k);v=verif(k);}
		if(a==0)k--;
			else if(k==n)solutie();
		else {k++;x[k]=initial(k);}
	}
}
int main()
{
	A=fopen("permutari.in","r");
	B=fopen("permutari.out","w");
	fscanf(A,"%d",&n);
	bak();
	fclose(A);
	fclose(B);
}