Cod sursa(job #836784)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 16 decembrie 2012 18:55:12
Problema Generare de permutari Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
// CPlusPlus Console Application.cpp : Defines the entry point for the console application.
//

#include <fstream>
using namespace std;

fstream cin("permutari.in", ios::in);
fstream cout("permutari.out", ios::out);

int n, v[1000];

bool solutie(int k)
{
	if(k == n + 1)
		return true;
	return false;
}

void tipar(int k)
{
	for (int i = 1; i < k; i++)
	{
		cout << v[i] << " ";
	}

	cout << endl;
}

bool succesor(int k)
{
	if(v[k] < n)
	{
		v[k]++;
		return true;
	}
	return false;
}

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

	return true;
}

void init(int k)
{
	v[k] = 0;
}

void bkt(int k)
{
	if(solutie(k))
		tipar(k);
	else
	{
		init(k);
		while(succesor(k))
			if(valid(k))
				bkt(k+1);
	}
}

int main(int argc, char* argv[])
{
	cin >> n;
	bkt(1);
}