Cod sursa(job #230058)

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

void citire(){
	fstream fin ("permutari.in",ios::in);
	fin>>n;
	fin.close();
}
fstream fout("permutari.out",ios::out);

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<=k;i++)
		fout<<st[i]<<" ";
	fout<<endl;
}
int main(){
	citire();
	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]++;}
		}
	}
}