Cod sursa(job #2178075)

Utilizator savigunFeleaga Dragos-George savigun Data 19 martie 2018 01:36:19
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], 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;
}