编程题
### 问题描述 小蓝去玩具店,玩具店里有 $2^n$ 个玩具,玩具的编号从 $1$ 到 $2^n$ ,而每个玩具的可爱值与它的编号相对应(即编号为 $x$ 的玩具可爱值为 $x$ )。 小蓝现在要从这些玩具中选出他最心爱的 $1$ 个玩具买下,他选择的方法如下: 小蓝对这些玩具共要进行 $2^{n-1}$ 轮比较。第一轮比较中,将玩具 $1$ 与玩具 $2$ ,玩具 $3$ 与玩具 $4$ ,玩具 $5$ 与玩具 $6$ ……以此类推,进行比较。小蓝将在每组中选出一个玩具晋级,参加下一轮的比较,每组中没有被选择的另一个玩具则会遭到淘汰,不参加后续比较。也就是说,在第一轮比较完成后,只有 $2^{n-1}$ 个玩具会晋级。如果此时晋级的玩具只有一个,那么这个玩具将是小蓝最心爱的玩具;若晋级的玩具有多个,将会进行相同选拔规则的下一轮比较:玩具 $1$ 与玩具 $2$ 的比较中的胜者将会与玩具 $3$ 与玩具 $4$ 的比较中的胜者进行比较,玩具 $5$ 与玩具 $6$ 的比较中的胜者将会与玩具 $7$ 与玩具 $8$ 的比较中的胜者进行比较……以此类推,直到只剩下一个玩具晋级。 小蓝现在有一个只由 $0$ 和 $1$ 组成的字符串 $s$ ,字符串长度为 $n$ 。小蓝将它作为自己在每轮中选择晋级玩具的标准: - 如果 $s_i$ 为 $0$ ,那么在第 $i$ 轮比较中,可爱值较小的玩具将会晋级。 - 如果 $s_i$ 为 $1$ ,那么在第 $i$ 轮比较中,可爱值较大的玩具将会晋级。 编号为 $i$ 的玩具的价格为 $a_i$ 。在小蓝挑选玩具之前,玩具店老板要对这些玩具重新排序,请你为老板找出一个排列,使小蓝买下的他最心爱的玩具价格最高。 ### 输入格式 第一行包含一个整数 $n$ ,含义如问题描述中所示。 第二行包含一个长度为 $n$ 的字符串 $s$ ,表示小蓝选择晋级玩具的标准。保证该字符串中只包含 $0$ 和 $1$ 两种字符。 第三行包含一个 $2^n$ 个整数 $a_1,a_2,…,a_{2^n }$ ,表示玩具的价格。 ### 输出格式 输出一个整数,表示小蓝买下的他最心爱的玩具的最高价格。 ### 样例输入 ``` 3 101 4 2 1 8 9 2 7 3 ``` ### 样例输出 ``` 9 ``` ### 评测数据规模 对于所有评测数据, $1\leq{n}\leq{16},1\leq{a_i}\leq{10^9 }$ 。
查看答案
赣ICP备20007335号-2