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$ isOR
.
Here, $a \land b$ and $a \lor b$ are logical operators.
Constraints
- $1 \leq N \leq 60$
- $S_i$ is
AND
orOR
.
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}$.