Pagini recente » Cod sursa (job #1420699) | Cod sursa (job #290258) | Cod sursa (job #891174) | Cod sursa (job #115697) | Cod sursa (job #2499406)
#include <cstdio>
#include <vector>
#include <unordered_map>
using namespace std;
int N;
unordered_map<int, int> whichBit;
inline int lsb(int mask) {
return mask ^ (mask & (mask - 1));
}
void recons(int mask) {
while (mask) {
int leastBitValue = lsb(mask);
printf("%d ", whichBit[leastBitValue]);
mask ^= leastBitValue;
}
printf("\n");
}
int main() {
freopen("submultimi.in", "r", stdin);
freopen("submultimi.out", "w", stdout);
scanf("%d", &N);
whichBit.reserve(N);
for (int bit = 1; bit <= N; bit++) {
whichBit[1 << (bit - 1)] = bit;
}
for (int mask = 1; mask < (1 << N); mask++) {
recons(mask);
}
return 0;
}