Cod sursa(job #957872)

Utilizator teoionescuIonescu Teodor teoionescu Data 6 iunie 2013 10:59:46
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 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;
	if(n==1) out<<n;
	else{
		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;
}