Cod sursa(job #545465)

Utilizator cnt_tstcont teste cnt_tst Data 3 martie 2011 13:44:32
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream.h>

int X[20];
int n;

ofstream g("permutari.out");


int cont(int k) {
	//verific daca elementul de pe nivelul k impreuna cu cele de pe nivelele 1..k-1 poate sa conduca la solutie
	//stiind ca aceeasi verificare o facusem cu fiecare dintre elementele anterioare
	for (int i=1;i<k;i++)
		if (X[i] == X[k])
			return 0;
	return 1;
}

void back(int k) {
	if (k>n) {
		for (int i=1;i<=n;i++)
			g<<X[i]<<" ";
		g<<"\n";
		return;
	}
	
	for (int i=1;i<=n;i++){
		X[k] = i;
		if (cont(k))
			back(k+1);
	}
}

int main() {
	ifstream f("permutari.in");
	f>>n;
	f.close();
	back(1);	
	g.close();
	return 0;
}