CF1767C Count Binary Strings
Description
You are given an integer $ n $ . You have to calculate the number of binary (consisting of characters 0 and/or 1) strings $ s $ meeting the following constraints.
For every pair of integers $ (i, j) $ such that $ 1 \le i \le j \le n $ , an integer $ a_{i,j} $ is given. It imposes the following constraint on the string $ s_i s_{i+1} s_{i+2} \dots s_j $ :
- if $ a_{i,j} = 1 $ , all characters in $ s_i s_{i+1} s_{i+2} \dots s_j $ should be the same;
- if $ a_{i,j} = 2 $ , there should be at least two different characters in $ s_i s_{i+1} s_{i+2} \dots s_j $ ;
- if $ a_{i,j} = 0 $ , there are no additional constraints on the string $ s_i s_{i+1} s_{i+2} \dots s_j $ .
Count the number of binary strings $ s $ of length $ n $ meeting the aforementioned constraints. Since the answer can be large, print it modulo $ 998244353 $ .
Input Format
The first line contains one integer $ n $ ( $ 2 \le n \le 100 $ ).
Then $ n $ lines follow. The $ i $ -th of them contains $ n-i+1 $ integers $ a_{i,i}, a_{i,i+1}, a_{i,i+2}, \dots, a_{i,n} $ ( $ 0 \le a_{i,j} \le 2 $ ).
Output Format
Print one integer — the number of strings meeting the constraints, taken modulo $ 998244353 $ .
Explanation/Hint
In the first example, the strings meeting the constraints are 001, 010, 011, 100, 101, 110.
In the second example, the strings meeting the constraints are 001, 110.