Cod sursa(job #2178074)

Utilizator savigunFeleaga Dragos-George savigun Data 19 martie 2018 01:31:27
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#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];
stack<Block> stk;

void show(int k) {
    for (int i = 1; i <= k; ++i) {
        out << subset[i] << " ";
    }
    out << "\n";
}


int main()
{
    in >> n;

    stk.push({1, 0});

    while (!stk.empty()) {
        Block blk = stk.top();
        int k = blk.k;
        int last = blk.last;

        if (k > n || last >= n) {
            stk.pop();
            continue;
        }

        subset[k] = last + 1;
        show(k);

        stk.pop();
        stk.push({k, last + 1});
        stk.push({k + 1, last + 1});
    }

    return 0;
}