Cod sursa(job #957871)

Utilizator teoionescuIonescu Teodor teoionescu Data 6 iunie 2013 10:56:59
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
int n,ln,v[10],a[10];
int ok(){
	for(int i=1;i<=ln;i++) a[i]=0;
	for(int i=1;i<=ln;i++) a[v[i]]++;
	for(int i=1;i<=ln;i++) if(a[i]>1) return 0;
	return 1;
}
void afis(){
	for(int i=1;i<=n;i++) out<<v[i]<<' ';
	out<<'\n';
}
int main(){
	in>>n;
	ln=1;
	v[ln]=1;
	while(ln){
		while(ln && v[ln]<=n){
			if(ok()){
				if(ln==n){
					afis();
					ln--;
				}
				else v[++ln]=0;
			}
			v[ln]++;
		}
		ln--;
		v[ln]++;
	}
	return 0;
}