Pagini recente » Cod sursa (job #1587935) | Cod sursa (job #143324) | Cod sursa (job #1230718) | Cod sursa (job #1029010) | Cod sursa (job #3200417)
#include <fstream>
#define _ ios::sync_with_stdio(0); cin.tie(0);
#define max 10
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int stack[max], level = 1, n;
int valid() {
for (int i = 1; i < level; i++) {
if (stack[level] == stack[i])
return 0;
}
return 1;
}
int solution() {
if (level == n) return 1;
return 0;
}
void print() {
for (int i = 1; i <= n; i++)
fout << stack[i] << " ";
fout << '\n';
}
void Backtracking() {
for (int i = 1; i <= n; i++) {
stack[level] = i;
if (valid()) {
if (solution()) {
print();
} else {
level++;
Backtracking();
level--;
}
}
}
}
int main () {
fin >> n;
Backtracking();
return 0;
}