Cod sursa(job #962358)

Utilizator tudorv96Tudor Varan tudorv96 Data 14 iunie 2013 17:26:56
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;

#define in "submultimi.in"
#define out "submultimi.out"

vector <int> p, v;
int n;

void create(int k) {
	int x = 0;
	v.resize(0);
	for (int i = 1; i <= n && x < k; ++i)
		if (x < k - p[i])
			x += p[i];
		else {
			x++;
			v.push_back (i);
		}
}

int main(void) {
	ifstream fin (in);
	fin >> n;
	fin.close();
	for (int i = 0; i <= n; ++i)
		p.push_back (1 << (n - i));
	int t = 1 << n;
	ofstream fout (out);
	for (int k = 1; k < t; ++k) {
		create(k);
		for (unsigned i = 0; i < v.size(); ++i)
			fout << v[i] << " ";
		fout << "\n";
	}
	fout.close();
	return 0;
}