2127: 小Y游历二叉树

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

有一棵二叉树,我们定义如下:
 每个结点都有两个孩子:左孩子与右孩子;
 如果结点的值为整数X,那么左孩子的值为2X,右孩子的值为2X+1;
 根的值定义为1。
现在,小Y同学在这棵二叉树上模拟步行。步行时由大写字母L,R,P来描述:
 字母L表示走到左孩子上;
 字母R表示走到右孩子上;
 字母P表示停留。
步行结束时所在的结点的值即是步行的值,例如:LRP的值是5,RPP的值是3。 步行过程用一段包含字符L,R,P和*的串表示,*则可以表示三种移动的任意一种。 例如,L*R包含LLR,LRR和LPR。 **包含LL,LR,LP,RL,RR,RP,PL,PR和PP。 最后,步行过程的代价是所有符合所给模式的步行方案的和(各方案最终到达点的数值)。现在,小Y同学就请你编程帮他计算出答案。

输入

输入一行,即一个描述步行的字符串,只包含字符:L,R,P,*。

输出

输出一行一个数,即所有符合所给步行方案的和。

样例输入 复制

L*R

样例输出 复制

25

提示

数据规模:

对于30%的数据,保证字符串中没有*;

对于50%的数据,保证字符串中*最多只有3个;

对于全部的数据,保证字符串长度不超过10000。