Cod sursa(job #230062)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 12 decembrie 2008 21:18:08
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>  
int n,k;
int st[9];
using namespace std;


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

    for(int i = 1; i <= n; ++i)  
        printf("%d ",st[i]);  
    printf("\n");    
}
int main(){
	freopen("permutari.in","rt",stdin);  
    freopen("permutari.out","wt",stdout);  
  
    scanf("%d",&n);  
	k=1;
	st[k]=1;
	while (k){
		if (valid(k)){
			if (k==n) {print_it();
						st[k]++;
			}
			else {
				k++;
				st[k]=1;}
			
		}	else{
			if (st[k]<n) {st[k]++;}
			else {
				st[k]=0;
				k--;
			st[k]++;}
		}
	}
}