CF743B Chloe and the sequence

题目描述

Chloe 和 Vladik 一样,是一名竞赛程序员。她像 Vladik 一样顺利进入了奥林匹克,但在奥林匹克上的题目让她感到困惑。 我们来考虑如下生成整数序列的算法。一开始,我们有一个只包含 $1$ 的序列。接下来,我们要执行 $(n-1)$ 步操作。每一步,我们都将上一步得到的序列追加到自身末尾,并在中间插入当前还未使用过的最小正整数。比如,第一次操作后得到的序列为 $[1,2,1]$,第二次操作后得到的序列为 $[1,2,1,3,1,2,1]$。 现在要求你求出经过 $(n-1)$ 步操作后,第 $k$ 个位置上的数字是多少(下标从 $1$ 开始计数)。 请你帮助 Chloe 解答这个问题!

输入格式

一行,包含两个整数 $n$ 和 $k$,其中 $1 \leq n \leq 50$,$1 \leq k \leq 2^{n} - 1$。

输出格式

输出一个整数,表示最终序列中第 $k$ 个位置上的数字。

说明/提示

在第一个样例中,最终得到的序列为 $[1,2,1,3,1,2,1]$。第 $2$ 个位置上的数字是 $2$。 在第二个样例中,最终得到的序列为 $[1,2,1,3,1,2,1,4,1,2,1,3,1,2,1]$。第 $8$ 个位置上的数字是 $4$。 由 ChatGPT 5 翻译