Pagini recente » Cod sursa (job #2275468) | Cod sursa (job #2037604) | Cod sursa (job #1056479) | Istoria paginii runda/oni-2009-xi-xii | 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;
}