#include <iostream>
#include <vector>
using namespace std;
vector< vector<int> > getAllSubsets(vector<int> set)
{
vector< vector<int> > subset;
vector<int> empty;
subset.push_back( empty );
for (int i = 0; i < set.size(); i++)
{
vector< vector<int> > subsetTemp = subset;
for (int j = 0; j < subsetTemp.size(); j++)
subsetTemp[j].push_back( set[i] );
for (int j = 0; j < subsetTemp.size(); j++)
subset.push_back( subsetTemp[j] );
}
return subset;
}
int main() {
vector< vector<int> > subsets;
vector<int> set;
for(int i=0;i<5;i++)
{
set.push_back(i);
}
cout<<"hello"<<endl;
subsets=getAllSubsets(set);
cout<<subsets.size()<<endl;
cout<<subsets[2][0]<<endl;
for(int i=0;i<subsets.size();i++)
{
vector<int> x=subsets[i];
for(int j=0;j<x.size();j++)
{
cout<<x[j]<<" ";
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPCB2ZWN0b3I8aW50PiA+IGdldEFsbFN1YnNldHModmVjdG9yPGludD4gc2V0KQp7CiAgICB2ZWN0b3I8IHZlY3RvcjxpbnQ+ID4gc3Vic2V0OwogICAgdmVjdG9yPGludD4gZW1wdHk7CiAgICBzdWJzZXQucHVzaF9iYWNrKCBlbXB0eSApOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2V0LnNpemUoKTsgaSsrKQogICAgewogICAgICAgIHZlY3RvcjwgdmVjdG9yPGludD4gPiBzdWJzZXRUZW1wID0gc3Vic2V0OwoKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHN1YnNldFRlbXAuc2l6ZSgpOyBqKyspCiAgICAgICAgICAgIHN1YnNldFRlbXBbal0ucHVzaF9iYWNrKCBzZXRbaV0gKTsKCiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzdWJzZXRUZW1wLnNpemUoKTsgaisrKQogICAgICAgICAgICBzdWJzZXQucHVzaF9iYWNrKCBzdWJzZXRUZW1wW2pdICk7CiAgICB9CiAgICByZXR1cm4gc3Vic2V0Owp9CgppbnQgbWFpbigpIHsKCXZlY3RvcjwgdmVjdG9yPGludD4gPiBzdWJzZXRzOwoJdmVjdG9yPGludD4gc2V0OwoJZm9yKGludCBpPTA7aTw1O2krKykKCXsKCQlzZXQucHVzaF9iYWNrKGkpOwoJfQoJY291dDw8ImhlbGxvIjw8ZW5kbDsKCXN1YnNldHM9Z2V0QWxsU3Vic2V0cyhzZXQpOwoJY291dDw8c3Vic2V0cy5zaXplKCk8PGVuZGw7Cgljb3V0PDxzdWJzZXRzWzJdWzBdPDxlbmRsOwoJZm9yKGludCBpPTA7aTxzdWJzZXRzLnNpemUoKTtpKyspCgl7CgkJdmVjdG9yPGludD4geD1zdWJzZXRzW2ldOwoJCWZvcihpbnQgaj0wO2o8eC5zaXplKCk7aisrKQoJCXsKCQkJY291dDw8eFtqXTw8IiAiOwoJCX0KCQljb3V0PDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=