#include <bits/stdc++.h>
using namespace std;
void f(vector<int>& v, vector<vector<int>>& ans,bool vis[], vector<int>& temp,int idx, int n){
if(temp.size()==n){
for(int i=0;i<temp.size();i++)
cout<<temp[i]<<" ";
cout<<endl;
ans.push_back(temp);
return;
}
for(int i=0;i<n;i++){
if(!vis[i]){
temp.push_back(v[i]);
vis[i]=true;
f(v,ans,vis,temp,0,n);
temp.pop_back();
vis[i]=false;
}
}
}
int main() {
// your c
vector<int>v= {3,4,2,1};
vector<vector<int>>ans;
bool vis[4]={false};
vector<int> temp; int n=v.size();
f(v,ans,vis,temp,0,n);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgZih2ZWN0b3I8aW50PiYgdiwgdmVjdG9yPHZlY3RvcjxpbnQ+PiYgYW5zLGJvb2wgdmlzW10sIHZlY3RvcjxpbnQ+JiB0ZW1wLGludCBpZHgsIGludCBuKXsKCWlmKHRlbXAuc2l6ZSgpPT1uKXsKCQlmb3IoaW50IGk9MDtpPHRlbXAuc2l6ZSgpO2krKykKCQljb3V0PDx0ZW1wW2ldPDwiICI7CgkJY291dDw8ZW5kbDsKCQkKCQlhbnMucHVzaF9iYWNrKHRlbXApOwoJCSByZXR1cm47Cgl9Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlpZighdmlzW2ldKXsKCQl0ZW1wLnB1c2hfYmFjayh2W2ldKTsKCQl2aXNbaV09dHJ1ZTsKCQlmKHYsYW5zLHZpcyx0ZW1wLDAsbik7CgkJdGVtcC5wb3BfYmFjaygpOwoJCXZpc1tpXT1mYWxzZTsKCQl9Cgl9Cn0KaW50IG1haW4oKSB7CgkvLyB5b3VyIGMKCXZlY3RvcjxpbnQ+dj0gezMsNCwyLDF9OwoJdmVjdG9yPHZlY3RvcjxpbnQ+PmFuczsKCWJvb2wgdmlzWzRdPXtmYWxzZX07Cgl2ZWN0b3I8aW50PiB0ZW1wOyBpbnQgbj12LnNpemUoKTsKCWYodixhbnMsdmlzLHRlbXAsMCxuKTsKfQ==