Cod sursa(job #162060)

Utilizator stinkyStinky si Grasa stinky Data 19 martie 2008 12:59:22
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
int n,sol[10];
int valid(int k){
	/*
	verifica daca sol[k] e compatibil cu 
	elementele care sunt deja in sol
	*/
	for(int i=1;i<k;++i)
		if(sol[i]==sol[k])
			return 0;
	return 1;
}
void scrie(){
	for(int i=1;i<n;++i)
		printf("%d ",sol[i]);
	printf("%d\n",sol[n]);
}
void back(int k){//completeaza sol[k]
	if(k==n+1){
		//prelucrarea unei solutii
		scrie();
		return;
	}
	//aleg un element pentru sol[k]
	for(int i=1;i<=n;++i){
		sol[k]=i;
		if(valid(k))
			back(k+1);
	}
}
int main(){
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	scanf("%d",&n);
	back(1);
	return 0;
}