Cod sursa(job #573261)

Utilizator Alexxino7Alexandru Popescu Alexxino7 Data 6 aprilie 2011 08:52:20
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
using namespace std;
int n,k,ev,as,s[100];
ofstream fout ("permutari.out");
void init(){
	s[k]=0;}

int succesor(){
	if(s[k]<n) {s[k]++; return 1;}
	else return 0;}

int valid(){
	for(int i=1;i<k;i++)
		if(s[i]==s[k]) return 0;
	return 1;}

int solutie(){
	return k==n;}

void tipar(){
	for(int i=1;i<=n;i++) fout<<s[i]<<" ";
	fout<<"\n";}

void bt(){
	k=1;
	init();
	while(k>0){
		
		as=1;ev=0;
		while(as && !ev){
			
			as=succesor();
			if(as)
				ev=valid();}
		if(as)
			if(solutie())
				tipar();
			else{
				k++;
				init();}
		else k--;}}

int main(){
	ifstream fin ("permutari.in");
	fin>>n;
	bt();
	fin.close();
	fout.close();
	return 0;
}