Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;bool vis[15];int n;vector<int>ans;void dfs(int now,int last){if(now==n+1){for(int i=0;i<ans.size();i++){printf("%d ",ans[i]);}printf("\n");}else{for(int i=1;i<=n;i++){if(!vis[i]){if(last==-1){vis[i]=1;ans.push_back(i);dfs(now+1,i%2);vis[i]=0;ans.pop_back();}else{if(i%2==last)continue;vis[i]=1;ans.push_back(i);dfs(now+1,i%2);vis[i]=0;ans.pop_back();}}}}}