Cod sursa(job #217755)

Utilizator dReaMerAndrei Sofian dReaMer Data 30 octombrie 2008 09:51:14
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<iostream.h>
#include <math.h>

int st[10];
int n,k,ev,as;


inline void init (){
	st[k]=0;
}

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

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

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

void tipar (){
	int i;
	for(i=1;i<=n;i++)
		cout<<st[i]<<" ";
	cout<<endl;
}

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

int main(){
	freopen("permutari.in","r",stdin);
	freopen("permutari.out","w",stdout);
	cin>>n;
	bt();
	return 0;
}