Pagini recente » Cod sursa (job #2441047) | Cod sursa (job #585889) | Cod sursa (job #810294) | Cod sursa (job #459074) | Cod sursa (job #2178075)
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
ifstream in("submultimi.in");
ofstream out("submultimi.out");
struct Block { int k, last; };
int n, subset[17], size;
Block stk[17];
void show(int k) {
for (int i = 1; i <= k; ++i) {
out << subset[i] << " ";
}
out << "\n";
}
int main()
{
in >> n;
size = 1;
stk[1] = {1, 0};
while (size > 0) {
Block blk = stk[size];
int k = blk.k;
int last = blk.last;
if (k > n || last >= n) {
size--;
continue;
}
subset[k] = last + 1;
show(k);
stk[size] = {k, last + 1};
stk[++size] = {k + 1, last + 1};
}
return 0;
}