fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void f(vector<int>& v, vector<vector<int>>& ans,bool vis[], vector<int>& temp,int idx, int n){
  4. if(temp.size()==n){
  5. for(int i=0;i<temp.size();i++)
  6. cout<<temp[i]<<" ";
  7. cout<<endl;
  8.  
  9. ans.push_back(temp);
  10. return;
  11. }
  12. for(int i=0;i<n;i++){
  13. if(!vis[i]){
  14. temp.push_back(v[i]);
  15. vis[i]=true;
  16. f(v,ans,vis,temp,0,n);
  17. temp.pop_back();
  18. vis[i]=false;
  19. }
  20. }
  21. }
  22. int main() {
  23. // your c
  24. vector<int>v= {3,4,2,1};
  25. vector<vector<int>>ans;
  26. bool vis[4]={false};
  27. vector<int> temp; int n=v.size();
  28. f(v,ans,vis,temp,0,n);
  29. cout<<" ans size is "<<ans.size()<<endl;
  30. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
3 4 2 1 
3 4 1 2 
3 2 4 1 
3 2 1 4 
3 1 4 2 
3 1 2 4 
4 3 2 1 
4 3 1 2 
4 2 3 1 
4 2 1 3 
4 1 3 2 
4 1 2 3 
2 3 4 1 
2 3 1 4 
2 4 3 1 
2 4 1 3 
2 1 3 4 
2 1 4 3 
1 3 4 2 
1 3 2 4 
1 4 3 2 
1 4 2 3 
1 2 3 4 
1 2 4 3 
 ans size is 24