Pagini recente » Cod sursa (job #1632616) | Cod sursa (job #40776) | Cod sursa (job #1096403) | Cod sursa (job #1735925) | Cod sursa (job #1630536)
#include <fstream>
#define NMAX 10
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int i, n, level = 1, v[NMAX], fr[NMAX];
void afisare()
{
for (int j = 1; j <= n; ++ j)
g << v[j] << " ";
g << '\n';
}
bool ok()
{
for (int j = 1; j <= n; ++ j)
fr[j] = 0;
for (int j = 1; j <= level; ++ j)
{
fr[v[j]] ++;
if (fr[v[j]] > 1)
return 0;
}
return 1;
}
void backtracking()
{
while (level > 0)
{
bool check = 0;
while (!check && v[level] < n)
{
v[level] ++;
check = ok();
}
if (!check)
level --;
else
if (level == n)
afisare();
else
v[++ level] = 0;
}
}
int main()
{
f >> n;
backtracking();
return 0;
}