#ARC175A. 取勺问题

取勺问题

取勺问题

时间限制:2s
空间限制:1024MB

题目描述

NN 个人按逆时针方向编号为 11 到 NN,围坐在圆桌旁。相邻两人之间各有一把勺子,共有 NN 把:人 ii 左侧是勺子 ii,右侧是勺子 (i+1)(i+1),其中勺子 (N+1)(N+1) 表示勺子 11。

给定排列 PP,人们依次按 P1,P2,…,PNP_1,P_2,\ldots,P_N 行动。如果左右至少有一把勺子剩余,就取走一把;若两把都在,则取惯用手一侧的勺子;若两把都不在,则什么也不做。

字符串 SS 描述惯用手限制:L 表示必须左利手,R 表示必须右利手,? 表示任选。求满足限制且最终每个人都拿到一把勺子的惯用手组合数,对 998244353998244353 取模。

输入格式

N
P_1 P_2 ... P_N
S

输出格式

输出满足条件的组合数对 998244353998244353 取模的结果。

样例输入 1

3
1 2 3
L??

样例输出 1

2

数据范围

  • 2≤N≤2×1052\le N\le2\times10^5;
  • PP 是 11 到 NN 的一个排列;
  • SS 是由 L、R、? 组成的长度为 NN 的字符串。
子任务编号 分值 特殊限制
1 10 SS 中不含 ?
2 20 对所有 ii 均有 Pi=iP_i=i
3 40 N≤12N\le12
4 30 无特殊限制