Cod sursa(job #434424)

Utilizator IAmASuperCerealVictor Andrei IAmASuperCereal Data 5 aprilie 2010 21:25:40
Problema Submultimi Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
#define input "submultimi.in"
#define output "submultimi.out"
int n,a[100],f[10000][100],r[100];
void build_filter(int x)
{
	int nr=0,p=1;
	for(int i=0;i<=x;i++)
	{
		nr=0;p=1;
		do
		{
			nr++;
			f[i][nr]=r[i]&1;
			r[i]/=2;
			p*=2;
		}
		while(p<=x);
	}
}
int putere(int n)
{
	int x=1;
	for(int i=1;i<=n;i++)
		x*=2;
	return x;
}
int main()
{
	int x;
	freopen(input,"r",stdin);
	freopen(output,"w",stdout);
	scanf("%d",&n);
	x=putere(n);
	for(int i=0;i<=x-1;i++)
		r[i]=i;
	build_filter(x-1);
	for(int i=0;i<=x-1;i++)
		r[i]=i;
	for(int i=1;i<=x-1;i++)
	{
		for(int j=1;j<=n;j++)
			if(f[i][j]==1)
				printf("%d ",r[j]);
		printf("\n");
	}
	return 0;
}