#include<cstdio>
int n, t, N;
int tab[2000000];
void wypisz(int S, int E){
if(S==E){
printf("%d ",tab[S]);
return;
}
int half = (E - S + 1) >> 1;;
wypisz(S + half, E);
wypisz(S, E - half);
}
int main(){
scanf("%d%d",&n,&t);
N = 1 << n;
for(int i = 0; i < N; ++i)
scanf("%d",&tab[i]);
if ((t&1) == 0)
for(int i=0;i < N; ++i)
printf("%d ",tab[i]);
else
wypisz(0, N-1);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include<cstdio> int n, t, N; int tab[2000000]; void wypisz(int S, int E){ if(S==E){ printf("%d ",tab[S]); return; } int half = (E - S + 1) >> 1;; wypisz(S + half, E); wypisz(S, E - half); } int main(){ scanf("%d%d",&n,&t); N = 1 << n; for(int i = 0; i < N; ++i) scanf("%d",&tab[i]); if ((t&1) == 0) for(int i=0;i < N; ++i) printf("%d ",tab[i]); else wypisz(0, N-1); } |
English