Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 176 si 175 | Cod sursa (job #1293298) | Cod sursa (job #3160190) | Cod sursa (job #785134) | Cod sursa (job #434425)
Cod sursa(job #434425)
#include<stdio.h>
#define input "submultimi.in"
#define output "submultimi.out"
int n,f[66000][20],r[66000];
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;
}