Cod sursa(job #152205)

Utilizator razvi9Jurca Razvan razvi9 Data 9 martie 2008 10:51:37
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<cstdio>
using namespace std;
int n,used[10],st[9],nr;

void back(int k)
{
	int i;
	if(k==n+1){
		for(i=1;i<=n;i++)
			printf("%d ",st[i]);
		printf("\n");
		nr--;
		return;}
	i=0;
	do{
		++i;
		while(used[i]) ++i;
		if(i>n) return;
		st[k]=i;
		used[i]=1;
		back(k+1);
		if(!nr) return;
		used[i]=0;
	}while(1);

}

int main()
{
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	nr=1;
	for(int i=2;i<=n;i++) nr=nr*i;
	back(1);
	fclose(stdout);
}