luogu#P11603. [PA 2016] 洗牌 / Tasowanie

[PA 2016] 洗牌 / Tasowanie

题目背景

译自 Potyczki Algorytmiczne 2016 R1 Tasowanie [B] (TAS)。

题目描述

给定 2n2^n 张牌,每张牌上写着一个正整数。第 ii 张牌上写着的正整数为 aia_i

考虑如下的洗牌过程:

  • 若要洗的牌的数量为 11,则什么都不做。
  • 否则,设牌的数量为 2k2^k
    • 递归地洗第 12k11\sim 2^{k-1} 张牌,以及第 2k1+12k2^{k-1}+1\sim 2^k 张牌;
    • 将洗过的第 2k1+12k2^{k-1}+1\sim 2^k 张牌放在洗过的第 12k11\sim 2^{k-1} 张牌前面。

用以上的过程洗好第 12n1\sim 2^n 张牌称为一次洗牌

给定正整数 tt。求出洗了 tt 次牌后,第 12n1\sim 2^n 张牌上写着的数字分别是什么。

输入格式

第一行,两个正整数 n,tn,t

第二行,2n2^n 个正整数 a1,a2,,a2na_1,a_2,\cdots,a_{2^n}

输出格式

2n2^n 个正整数,描述洗牌后每张牌上的数字。

2 1
2 4 1 5
5 1 4 2

提示

  • 1n201\le n\le 20
  • 1t,ai1091\le t,a_i\le 10^9