在遇到这道题之前,想必你已经实现过你的一维计算器:给出一个字符串表达式并进行求值。
现在,问题变难了,给出一个仅包含 ′0′−′9′,′+′,′∗′'0'-'9','+','*'′0′−′9′,′+′,′∗′ 的 H×WH \times WH×W 的二维字符矩阵,对于每条从左上角开始,结束于右下角,且仅往下和往右走的路径,计算它们经过的字符串作为表达式求值后的和。由于答案过大,你被要求计算答案对 MMM 取模之后的值。
我们保证字符矩阵的左上角和右下角均为数字。同时,两个四相邻的字符中至多一个是运算符,这意味着每条路径对应的字符串都是合法的表达式。
第一行是三个由空格隔开的整数 H,W,M (1≤H,M≤2000,1≤M≤109)H,W,M\ (1 \leq H,M \leq 2000,1 \leq M \leq 10^9)H,W,M (1≤H,M≤2000,1≤M≤109)。
接下来 HHH 行,每行包含一个长度为 WWW 的字符串,为字符矩阵。字符矩阵满足题设给定的条件。
输出一行,一个整数表示答案。
2 3 1000 3*1 +27
162
4 4 3000000 24+7 *23* 9+48 *123
2159570