#include
#include
using namespace std;
void GetPowerSet(vector<int> s,int i,int n,vectorint>> &result,vector<int>&t){
if(i>n){
result.push_back(t);
}else{
t.push_back(s[i-1]); GetPowerSet(s,i+1,n,result,t);
t.pop_back();GetPowerSet(s,i+1,n,result,t);
}
}
int main(int argc, const char * argv[]) {
vector<int> s{1,2,3};
vector<int> t;
vectorint>> result;
GetPowerSet(s,1,3,result,t);
vectorint>>::iterator it1;
vector<int>::iterator it2;
for(it1=result.begin();it1!=result.end();it1++){
for(it2=(*it1).begin();it2!=(*it1).end();it2++){
cout<<*it2<<" ";
}
cout<<endl;
}
return 0;
}