Cod sursa(job #703048)

Utilizator Claudiu95Vartolomei Alexandru Claudiu Claudiu95 Data 2 martie 2012 10:39:52
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<cstdio>
using namespace std;
int v[9],n,i;
int count(int k){
	int i;
	for(i=1;i<k;++i)
		if(v[i]==v[k])
			return 0;
	return 1;
}
int sol(int k){
	if(k==n)
		return 1;
	return 0;
}
void afis(){
	int i;
	for(i=1;i<=n;++i)
		printf("%d ",v[i]);
	printf("\n");
}
void back(){
	int k=1;
	v[k]=0;
	while(k>0){
		if(v[k]<n){
			v[k]=v[k]+1;
			if(count(k))
				if(sol(k))
					afis();
				else{
					++k;
					v[k]=0;
				}
		}
		else
			--k;
	}
}
int main(){
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;++i)
		v[i]=i;
	back();
	return 0;
}