Cod sursa(job #1197757)

Utilizator VolcomDaniel Dumitrascu Volcom Data 13 iunie 2014 17:56:07
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>

using namespace std;

int* vect;

bool valid_value(int index, int val)
{
	// Searching for a new VALID value
	for(int k = 0; k < index; ++k)
		if(vect[k] == val)
		  return false;

	return true;
}


void permutari(int index, int n)
{
	if(index == n)
	{
		//Success - print value
		for(int i = 0; i < n; ++i)
		    printf("%d ", vect[i]);

		printf("\n");
	}
	else
	{
		for(int j = 1; j <= n; ++j)
		{
			if(valid_value(index, j))
			{
				vect[index] = j;
				permutari(index+1, n);
			}
			else
			    continue;
		}
	}

	//backtracking... :)
}


int main()
{
	freopen("permutari.in", "r", stdin);
	freopen("permutari.out", "w", stdout);
	
	int n, index = 0;
	scanf("%d", &n);

	vect = new int[n]();

	permutari(index, n);

	delete vect;

	return 0;
}