fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. int a[30];
  5. int sub[30];
  6. int si;
  7. void printSubsetsPassArrayR(int si, int idx){
  8. if(idx==n){
  9. for(int i=0;i<si;i++){
  10. cout<<sub[i]<<" ";
  11. }
  12. cout<<"\n";
  13. return;
  14. }
  15. cout<<"first :"<<"si= "<<si<<", "<<"idx= "<<idx<<"\n";
  16. printSubsetsPassArrayR(si, idx+1);
  17. sub[si] = a[idx];
  18. cout<<"second :"<<"si= "<<si<<", "<<"idx= "<<idx<<"\n";
  19. printSubsetsPassArrayR(si+1, idx+1);
  20. }
  21. int main(){
  22. int t; cin>>t;
  23. while(t--){
  24. cin>>n;
  25. // ss = 0;
  26. for(int i=0;i<n;i++)
  27. cin>>a[i];
  28. printSubsetsPassArrayR(0, 0);
  29.  
  30.  
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 4752KB
stdin
1
3
4 7 9
stdout
first :si= 0, idx= 0
first :si= 0, idx= 1
first :si= 0, idx= 2

second :si= 0, idx= 2
9 
second :si= 0, idx= 1
first :si= 1, idx= 2
7 
second :si= 1, idx= 2
7 9 
second :si= 0, idx= 0
first :si= 1, idx= 1
first :si= 1, idx= 2
4 
second :si= 1, idx= 2
4 9 
second :si= 1, idx= 1
first :si= 2, idx= 2
4 7 
second :si= 2, idx= 2
4 7 9