Cod sursa(job #692657)

Utilizator mika17Mihai Alex Ionescu mika17 Data 26 februarie 2012 18:09:51
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>

int main()
{
	std::ifstream in("submultimi.in");
	std::ofstream out("submultimi.out");

	int N;
	in >> N;

	std::vector<int> G;

	G.push_back(0);
	G.push_back(1);
	for(int i = 1; i < N; ++i)
	{
		for(int j = 1 << i; j < ( 1 << (i + 1) ); ++j)
		{
			G.push_back( (1 << i) + G[ ( 1 << (i + 1) ) - 1 - j ] );
		}
	}
	for(std::vector<int>::iterator i = G.begin() ; i != G.end(); ++i)
		if(*i != 0)
		{
			for(int j = 0; j < N; ++j)
			{
				if(*i & (1 << j))
					out << j + 1 << ' ';
			}
			out << '\n';
		}

	return 0;
}