fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void f(vector<int>& v, vector<vector<int>>& ans,map<int,int> mp, 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(mp.find(i)==mp.end()){
  14. temp.push_back(v[i]);
  15. mp[i]++;
  16. f(v,ans,mp,temp,0,n);
  17. temp.pop_back();
  18. mp[i]--;
  19. }
  20. }
  21. }
  22. int main() {
  23. // your c
  24. vector<int>v= {3,1,2,1};
  25. vector<vector<int>>ans;
  26. map<int,int>mp;
  27. vector<int> temp; int n=v.size();
  28. f(v,ans,mp,temp,0,n);
  29. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
3 1 2 1