Cod sursa(job #2121504)

Utilizator AlexnolifeAlexandru Ica Alexnolife Data 3 februarie 2018 19:36:27
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

std::ifstream f("permutari.in");
std::ofstream g("permutari.out");

unsigned int n;
unsigned int v[9];

bool Valid(int k)
{
	for (int i = 1; i < k; i++) {
		if (v[i] == v[k]) {
			return false;
		}
	}

	return true;
}

inline bool Solution(int k)
{
	return (k == n) ? true : false;
}

void ShowSol()
{
	for (int i = 1; i <= n; i++) {
		g << v[i] << " ";
	}
	
	g << "\n";
}

void Back()
{
	int k = 1;
	v[k] = 0;

	while (k > 0) {
		if (v[k] < n) {
			v[k]++;

			if (Valid(k)) {
				if (Solution(k)) {
					ShowSol();
				}
				else {
					v[++k] = 0;
				}
			}
		}
		else {
			k--;
		}
	}
}

void Read()
{
	f >> n;
}

void Solve()
{
	Back();
}

int main()
{
	Read();
	Solve();

	return 0;
}