#include <iostream>
#include <vector>
using namespace std;
void generateSubsets(const vector<int>& inputSet, vector<int>& currentSubset, int index) {
int n = inputSet.size();
if (index == n) {
cout << "Subset: { ";
for (int i : currentSubset) {
cout << i << " ";
}
cout << "}\n";
return;
}
// Exclude the current element
generateSubsets(inputSet, currentSubset, index + 1);
// Include the current element
currentSubset.push_back(inputSet[index]);
generateSubsets(inputSet, currentSubset, index + 1);
// Backtrack to exclude the current element from the current subset
currentSubset.pop_back();
}
int main() {
vector<int> inputSet = {1, 2, 3};
vector<int> currentSubset;
generateSubsets(inputSet, currentSubset, 0);
return 0;
}