您是否正在为您的孩子寻找数学教育工具?那么,何不试试这款神奇的产品 E-circuit?这是学习二维几何、逻辑和算术的最佳玩具!
E-circuit 由一个包含许多方形块(称为单元)的网格空间组成。每个单元都能完美嵌入一个网格单元格中。它们具有一些输入和/或输出端子,用于传输整数值。当多个单元被适当地放置在网格中时,它们会形成一棵代表数学公式的树。
这些单元具有不同的功能,每个功能由一个字符表示,如下所示:
- 数字(‘0’ 到 ‘9’):这些单元有一个输出端子。它们中的每一个都会将该数字所表示的整数值发送到其输出端。
- 连接器(‘#’):这些单元有一个输入端子和一个输出端子。它们中的每一个都会从其输入端接收一个整数值,并将其原封不动地发送到其输出端。
- 运算符(‘+’、‘-’、‘*’、‘/’):这些单元有两个输入端子和一个输出端子,对从输入端接收到的值进行以下计算,并将结果发送到其输出端。
- ‘+’ 运算符计算两个输入值之和。
- ‘-’ 运算符计算两个输入值之差,即较大值减去较小值。
- ‘*’ 运算符计算两个输入值之积。
- ‘/’ 运算符计算两个输入值的商,即较大值除以较小值,若有小数部分则截断。
- 打印机(‘P’):打印机有一个输入端子,用于显示输入值。网格中应恰好有一个打印机单元。
如果两个单元格共享一条边,则称它们相邻。当两个单元放置在相邻单元格时,它们通过一个单元的输入端子和另一个单元的输出端子连接起来。
给定一个单元的适当放置方式,其中这些单元形成了一棵代表数学公式的单树。此类放置的正式描述将在“输入格式”部分给出。
你的任务是计算给定单元放置方式下打印机显示的值。
输入格式
输入由单个测试用例组成,格式如下:
$n$ $m$ $x_{1,1} \dots x_{1,m}$ $\vdots$ $x_{n,1} \dots x_{n,m}$
前两个整数 $n$ 和 $m$ ($1 \le n \le 50, 1 \le m \le 50$) 表示网格由 $n \times m$ 的矩阵排列而成。接下来的 $n$ 行描述了单元的放置情况。字符 $x_{i,j}$ ($1 \le i \le n, 1 \le j \le m$) 指定了位于从上往下第 $i$ 行、从左往右第 $j$ 列的单元。每个字符要么表示题目描述中提到的单元功能,要么是字符 ‘.’,表示该单元格为空。
保证单元的放置是适当的,即:
- 每个单元的相邻单元数量等于其输入和输出端子的总数,
- 所有单元的输入端子总数与输出端子总数相等,且
- 所有单元都属于打印机树:一个单元属于打印机树,当且仅当它是打印机,或者与另一个属于打印机树的单元相邻。
此外保证 ‘/’ 运算符的输入值不为零,且没有任何单元的输出值超过 $10^{18}$。
输出格式
输出一行,包含显示的值。
样例
输入 1
6 8 3....... #....P.. #....#.2 #.###*#+ ##-....# ..1...4#
输出 1
12
输入 2
4 3 .4. ./P 9*. .#7
输出 2
15
输入 3
5 11 8...8.....8 #.###...### #.#...P.#.. #**##-*+/## .4...3.0..1
输出 3
2024