Pagini recente » Cod sursa (job #1726072) | Cod sursa (job #1274720) | Cod sursa (job #1845370) | Cod sursa (job #1703424) | Cod sursa (job #2643548)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int n, st[10];
bool used[10];
void backtracking(int level)
{
// ce se intampla cand am generat ceva cu succes
if(level == n + 1)
{
for(int i = 1; i <= n; i++)
fout << st[i] << ' ';
fout << '\n';
return;
}
// ia in cosiderare toate optiunile pentru un anumit nivel
for(int i = 1; i <= n; i++)
{
// pot sa pun i la nivelul asta?
if(!used[i])
{
// marcam ca pus
st[level] = i;
used[i] = true;
// trecem la lvl urmaroe
backtracking(level + 1);
// curatam ce am marcat
used[i] = false;
}
}
}
int main()
{
fin >> n;
backtracking(1);
return 0;
}