P4685 [IOI 2008] Linear Garden
题目描述
拉美西斯二世刚刚获胜归来。为了纪念这一胜利,他决定建造一座壮观的花园。这个花园里的植物排成一行,从他在卢克索的宫殿直达卡纳克神庙。所种植的植物只有莲花和纸莎草,因为它们分别代表上埃及和下埃及。
这个花园中必须有$N$棵植物,并且必须保持平衡,即在花园中任取一段,其中莲花和纸莎草的棵数之差不能超过$2$。
花园可以被表示为由字母 `L`(莲花)和 `P`(纸莎草)组成的字符串。例如,当 $N=5$ 时,有 $14$ 种可能的平衡花园,按照字母排序如下:`LLPLP`,`LLPPL`,`LPLLP`,`LPLPL`,`LPLPP`, `LPPLL`,`LPPLP`,`PLLPL`,`PLLPP`,`PLPLL`,`PLPLP`,`PLPPL`,`PPLLP` 和 `PPLPL`。
给定长度的所有可能的平衡花园可按字母顺序排序,并从 $1$ 开始编号。例如,当 $N=5$ 时,第 $12$ 号花园是 `PLPPL`。
写一个程序,给定植物棵数 $N$ 和一个表示平衡花园的字符串,计算该花园的序号模 $M$ 的结果,其中 $M$ 是一个给定的整数。 注意,在问题求解中,数值 $M$ 除了简化计算外没有其他的作用。
输入格式
第一行是整数 $N$,说明花园中植物的数量。第二行是整数 $M$。第三行是长度为 $N$ 的由字符 `L` 或 `P` 组成的字符串,表示一个平衡的花园。
输出格式
你的程序需要向标准输出上输出一个介于 $0$ 和 $M-1$ 之间(含)的整数,占一行,表示该花园的序号模 $M$。
说明/提示
有总分 40 分的测试点的 $N$ 不超过 $40$。
对于所有测试点,$1\le N\le 1,000,000$,$7\le M \le 10,000,000$。
### 样例说明
第一个样例中,实际的序号是 12。因此输出的是 12 模 7,即 5。