101893: [AtCoder]ABC189 D - Logical Expression

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $400$ points

Problem Statement

Given are $N$ strings $S_1,\ldots,S_N$, each of which is AND or OR.

Find the number of tuples of $N+1$ variables $(x_0,\ldots,x_N)$, where each element is $\text{True}$ or $\text{False}$, such that the following computation results in $y_N$ being $\text{True}$:

  • $y_0=x_0$;
  • for $i\geq 1$, $y_i=y_{i-1} \land x_i$ if $S_i$ is AND, and $y_i=y_{i-1} \lor x_i$ if $S_i$ is OR.

Here, $a \land b$ and $a \lor b$ are logical operators.

Constraints

  • $1 \leq N \leq 60$
  • $S_i$ is AND or OR.

Input

Input is given from Standard Input in the following format:

$N$
$S_1$
$\vdots$
$S_N$

Output

Print the answer.


Sample Input 1

2
AND
OR

Sample Output 1

5

For example, if $(x_0,x_1,x_2)=(\text{True},\text{False},\text{True})$, we have $y_2 = \text{True}$, as follows:

  • $y_0=x_0=\text{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}$

All of the five tuples $(x_0,x_1,x_2)$ resulting in $y_2 = \text{True}$ are shown below:

  • $(\text{True},\text{True},\text{True})$
  • $(\text{True},\text{True},\text{False})$
  • $(\text{True},\text{False},\text{True})$
  • $(\text{False},\text{True},\text{True})$
  • $(\text{False},\text{False},\text{True})$

Sample Input 2

5
OR
OR
OR
OR
OR

Sample Output 2

63

All tuples except the one filled entirely with $\text{False}$ result in $y_5 = \text{True}$.

Input

题意翻译

### 题目翻译 有 n 个字符串,每个是 `and` 或 `or`,`and` 相当于 `&&`,`or` 相当于 `||`。\ 需要填入 n+1 个值,每个值是 `TRUE` 或 `FALSE`,请问有多少种方案可以使这个表达式最后的结果是 `TRUE`。

加入题单

算法标签: