SP3307 HEXTILE - Hex Tile Equations

题目描述

这个有趣的谜题由一组六边形瓷砖组成,每块瓷砖上显示一个数字、等号 `=` 或算术运算符 `+`、`-`、`*`、`/` 中的一种。需要你寻找一条连续路径,要求路径经过每块瓷砖恰好一次,且每个瓷砖与前一个瓷砖直接相邻。目标是选出这样的一条路径,使路径上的字符序列构成一个符合下述限制条件的有效方程。比如在图 1 中,如果从顶部开始沿灰色路径,字符序列为 "6/3=9-7"。类似地,在图 2 中,从左下角的 3 开始,字符序列为 "3\*21+10=73"。 对一个中等大小的六边形瓷砖图案来说,可能会有很多不同的潜在路径。玩家可能会觉得无从下手,想要问题的解决方案。你的任务就是自动化这一过程,给出答案。 六边形瓷砖的排列以及每个谜题中字符的选择遵循以下规则: 1. 六边形图案有奇数行,行数大于 2。所有奇数行都会有相同数量的瓷砖,偶数行则比奇数行多一块瓷砖,并且这些多出的瓷砖会向左和向右突出。 2. 这个图案中有且只有一个等号 `=`。 3. `*` 号在这个图案中最多出现两次。 4. 整个图案的瓷砖总数少于 14 块。 5. 在以下定义的字符序列限制条件下,图案中只有一个唯一的合法解决方案。 为了让路径上的字符形成合法的方程,等号两边的表达式必须形式正确且计算结果相等。有关等号两边表达式的有效形式及求值方法的规定如下: 6. 运算符 `+`、`-`、`*`、`/` 只能作为二元运算符使用,因此形如 `+` 或 `-` 作一元运算符的情况是不允许的。例如,"-2\*3=-6" 和 "1=5+-4" 都是不合法的。 7. 不按常规的运算优先级,而是所有运算拥有相同优先级,按从左到右顺序依次计算。例如,"44-4/2=2+3\*4" 是合法的,而 "14=2+3\*4" 是不合法的。 8. 若包含除法运算,方程只有在除法结果为整数时才合法。例如,"10/5=12/6" 和 "7+3/5=3\*4/6" 是合法的。而 "5/2\*4=10" 是不合法的,因为准确计算需包括中间小数结果。类似地,"5/2\*4=8" 因为截断除法的原因也不合法。 9. 至多允许两个连续数字。例如,"123+1=124" 是不合法的。 10. 字符序列中如果 `0` 后接其他数字是不允许的。例如,"3\*05=15" 是不合法的。 在上述假设之下,一个合法的表达式不会涉及超过三百万的中间或最终算术结果。

输入格式

输入包含 1 到 15 组数据,最后以一行仅包含数字 0 结束。 每组数据的第一行包含两个空格分隔的整数 $r$ 和 $c$,表示六边形图案的行数 $r$ 以及奇数行中瓷砖的数量 $c$。接下来的 $r$ 行分别表示每行的六边形瓷砖上的字符,字符之间用空格分隔。为了更好地模拟六边形瓷砖的排列,奇数行的行首会以空格开头。请遵循上述 1-5 条属性。

输出格式

对于每组数据,输出一行符合第 6-10 规则的唯一合法方程,结果不包含空格。 **本翻译由 AI 自动生成**