1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include <bits/stdc++.h>
using namespace std;
const int N = 10;
int n; int path[N]; bool st[N];
void dfs(int u){ if (u == n){ for (int i = 0; i < n; i ++) printf("%d ", path[i]); puts(""); return ; }
for (int i = 1; i <= n; i ++){ if (!st[i]){ path[u] = i; st[i] = true; dfs(u + 1); st[i] = false; } } }
int main(){ cin >> n; dfs(0); return 0; }
|