Cod sursa(job #821989)

Utilizator nimeniaPaul Grigoras nimenia Data 22 noiembrie 2012 20:36:19
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <math.h>

using namespace std;

ifstream in("submultimi.in");
ofstream out("submultimi.out");

void printSubsets(int num, int n) {

	int mask;

//	cout << num << " " << n << endl;

//	cout <<" ! ";
	for (int i = 0; i < n; i++) {
		int mask = 1 << i;
		if ( (mask & num) == mask) {
			cout << i + 1 << " ";
		}
	}

	mask = 1 << (n - 1);
	if ( (mask & num) == mask) {
		cout << (n - 1) + 1;
	}

	cout << endl;

}

int main() {
	
	int n, maxNum, num = 0;
	in >> n;
	maxNum = pow(2.0, n);
	while (num < maxNum - 1) {
		num++;
		printSubsets(num, maxNum);
	}

	return 0;
}