#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); } |