Cod sursa(job #733642)

Utilizator gabrielvGabriel Vanca gabrielv Data 12 aprilie 2012 18:00:31
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
using namespace std;
#include<cstdio>
#define NMAX 1200
int n,v[NMAX];
int frec[NMAX];
void afisare()
{
	for(int i=0;i<n;i++)
		printf("%d ",v[i]);
	printf("\n");
}
int more_steps(int step)
{
	return n-step;
}
void back(int step)
{
	if(step<n-1)
	{
		int i,j,l;
		for(i=1;i<=more_steps(step);i++)
		{
				for(j=1,l=0;j<=n&&l<i;j++)
					if(!frec[j])
						l++;
				v[step]=j-1;
				frec[j-1]=1;
				back(step+1);
				frec[j-1]=0;
		}
		
	}
	else
	{
		int i;
		for(i=1;i<=n&&frec[i];i++);
		v[step]=i;
		afisare();
	}
}
int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	back(0);
	return 0;
}