Pagini recente » Cod sursa (job #2906792) | Cod sursa (job #1209308) | Cod sursa (job #962777) | Cod sursa (job #868649) | Cod sursa (job #2023710)
#include <stdio.h>
#include <vector>
#include <cmath>
using namespace std;
#define pb push_back
typedef vector < vector <int> > vector2d;
class SubsetsGenerator {
public :
static vector2d getSubsets(int n){
vector2d subsets;
for (int bitMask = 1; bitMask < (1<<n); ++bitMask){
vector <int> newSubset;
for (int floatBit = 1; floatBit <= bitMask; floatBit <<= 1){
if (floatBit & bitMask){
newSubset.pb((int)log2(floatBit) + 1);
}
}
subsets.pb(newSubset);
}
return subsets;
}
};
int main(){
FILE *in = fopen("submultimi.in", "r");
FILE *out = fopen("submultimi.out", "w");
int n;
fscanf(in, "%d", &n);
vector2d subsets = SubsetsGenerator::getSubsets(n);
for (vector <int> subset : subsets){
for (int i : subset){
fprintf(out, "%d ",i);
}
fprintf(out, "\n");
}
return 0;
}