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