问题描述
给定N个字符串S1,…,SN,每个字符串是AND或OR。
求满足以下条件的N+1元组(x0,…,xN)的数量,其中每个元素为True或False,使得以下计算过程最终yN为True:
- y0=x0;
- 对于i≥1,如果Si是
AND,则yi=yi−1∧xi;如果Si是OR,则yi=yi−1∨xi。
这里,a∧b和a∨b是逻辑运算符。
约束条件
- 1≤N≤60
- Si是
AND或OR。
输入
输入通过标准输入给出,格式如下:
N
S_1
...
S_N
输出
打印答案。
样例输入1
2
AND
OR
样例输出1
5
例如,如果$(x_0,x_1,x_2)=(\text{True},\text{False},\text{True})$,则y2=True,计算过程如下:
- y0=x0=True
- $y_1=y_0 \land x_1 = \text{True} \land \text{False}=\text{False}$
- $y_2=y_1 \lor x_2 = \text{False} \lor \text{True}=\text{True}$
所有使得y2=True的五个元组(x0,x1,x2)如下:
- (True,True,True)
- (True,True,False)
- (True,False,True)
- (False,True,True)
- (False,False,True)
样例输入2
5
OR
OR
OR
OR
OR
样例输出2
63
除了全为False的元组外,所有元组都使得y5=True。