Pagini recente » Cod sursa (job #1693076) | Istoria paginii runda/game2 | Cod sursa (job #705098) | Cod sursa (job #2922984) | Cod sursa (job #1108879)
#include <iostream>
#include <fstream>
using namespace std;
int n, sol[10];
ofstream g("permutari.out");
void init(int k)
{
sol[k] = 0;
}
int succesor(int k)
{
if(sol[k] < n)
{
sol[k]++;
return 1;
}
else
return 0;
}
int valid(int k)
{
for (int i = 1; i <= k - 1; i++)
if(sol[k] == sol[i])
return 0;
return 1;
}
int solutie(int k)
{
return (k == n+1);
}
void tipar()
{
for (int i = 1; i <= n; i++)
g << sol[i] << " ";
g << '\n';
}
void backtrack(int k)
{
if (solutie(k))
tipar();
else
{
init(k);
while(succesor(k))
if(valid(k))
backtrack(k + 1);
}
}
int main()
{
ifstream f("permutari.in");
f >> n;
f.close();
backtrack(1);
g.close();
return 0;
}