Pagini recente » Cod sursa (job #847439) | Cod sursa (job #2030633) | Cod sursa (job #2364090) | Istoria paginii utilizator/tm.calin | Cod sursa (job #1197757)
#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;
}