题单练习 递归

A5342 | 汉堡汉堡汉

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

在这个世界里,今天是圣诞节。fangz 在派对上制作一种“多维汉堡”。等级为 $L$ 的汉堡($L\ge 0$)按如下方式定义:

  • 等级 $0$ 汉堡:只有 一层肉饼(记作 $P$)。
  • 等级 $L$ 汉堡($L\ge 1$):自下而上依次为
面包 $B$、等级 $L-1$ 汉堡、肉饼 $P$、等级 $L-1$ 汉堡、面包 $B$。

例如,用 $P$ 表示肉饼、$B$ 表示面包,则等级 $1$ 汉堡为 $BPBPB$(竖着叠放时从下到上读),等级 $2$ 汉堡为 $BBPBPBPBB$。

现在有一个等级为 $N$ 的汉堡。Welcome24ever 会从最下方开始吃掉 $X$ 层(每层可能是 $B$ 或 $P$)。请计算:在这 $X$ 层中,吃到的肉饼层数是多少?

输入格式

输入由标准输入给出,格式如下:
$N$ $X$

输出格式

输出等级 $N$ 汉堡从下往上数 $X$ 层中包含的肉饼数量。

输入输出样例

输入 #1
2 7
输出 #1
4
输入 #2
1 1
输出 #2
0
输入 #3
50 4321098765432109
输出 #3
2160549382716056
C++ 编辑器
输入
输出