Cod sursa(job #642815)

Utilizator bmaticanBogdan-Alexandru Matican bmatican Data 2 decembrie 2011 12:26:14
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <list>

using namespace std;

int n ;

void solve() {
  scanf("%d", &n);
  int maxim = 1<<n;
  for (int i = 1; i < maxim; ++i) {
    int ss = 1;
    bool done = false;
    for (int j = 0; ss <= i && j < n; ++j, ss = 1<<j) {
      if (i & ss) {
        if (! done) {
          printf("%d", j + 1);
          done = true;
        } else {
          printf(" %d", j + 1);
        }
      }
    }
    printf("\n");
  }
}

int main() {
  freopen("submultimi.in", "r", stdin);
  freopen("submultimi.out", "w", stdout);

  solve();
  return 0;
}