Cod sursa(job #477001)

Utilizator barneystinsonBarney barneystinson Data 12 august 2010 23:14:40
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>

FILE*f=fopen("permutari.in","r");
FILE*g=fopen("permutari.out","w");
int n,st[9],k;

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

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

void solutie(){
	
	for(int i =1;i<=n;i++){
		fprintf(g,"%d ",st[i]);
	}
	fprintf(g,"\n");
}

int main(){
	
	fscanf(f,"%d",&n);
	k=1;
	while(k){
		if(succesor()){
			st[k]++;
			if (valid()){
				if(k==n){
					solutie();
				}
				else 
					k++;
			}
		}
		else {
			st[k]=0;
			k--;
		}
	}
	
	fclose(f);
	fclose(g);
	return 0;
}