1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<cstdio>
#define zak 1100000

int k,t,n;
int T1[zak],T2[zak],PER[zak];

void tasowanie(int* B,int* P,int* K)
{
	for(int i=1;i<=n;i++)K[i]=B[P[i]];
}

int main()
{
	scanf("%d%d",&k,&t);
	n=1<<k;
	for(int i=1;i<=n;i++)PER[i]=n-i+1;
	for(int i=1;i<=n;i++)scanf("%d",&T1[i]);
	if(t&1)
	{
		tasowanie(T1,PER,T2);
		for(int j=1;j<=n;j++)T1[j]=T2[j];
	}
	for(int i=1;i<=n;i++)printf("%d ",T1[i]);
}