#P1524. Cowculations
Cowculations
描述
著名的考古学家波·瓦恩博士发现了一种原始的牛文明。在达拉斯附近的一处牧场上,出土了数百块计算石板。瓦恩博士成功破译了这些石板的含义,意识到它们代表了数学运算。他说:“我一直怀疑牛比它们表现出来的更聪明,这就是证据。重大的突破在于意识到它们无法用手指‘数数’(counting)来做数学,但它们能用蹄子思考(thinking on their feet)。但现在我有数百块这样的石板,需要帮助验证我的假设。”
编写一个程序,帮助瓦恩博士验证他的假设。本问题描述了他认为这些石板应如何解读。每块石板包含六行,每行包含一串牛符号。前两行代表牛的数字,接下来的三行代表对这些数字的运算,第六行代表结果。牛的数字使用四种符号:V、U、C 和 D,这些符号最接近牛蹄印的标记,因此我们用它们来表示符号。石板第一行和第二行的数字总是由这四种符号组成的长度为5的序列,而第六行的数字总是由这四种符号组成的长度为8的序列。
为了解读牛的计算,需要跟踪两个数字,以下称为Num1和Num2。初始时,Num1等于石板第一行的数字,Num2等于第二行的数字。但Num2的值可能会因运算而改变。共有四种可能的运算,分别由符号A、R、L和N表示。
运算A使Num2变为Num1和Num2的“和”,使用以下加法表:
| | | |
| | | |
| | | |
| | | |
| | | |
加法表的每个格子中,第一个符号表示加法结果,第二个符号表示进位符号。
例如:
(进位为)
牛加法的示例:
运算R使Num2的符号向右移动一位,最右边的符号丢失,最左边补。例如,会变为。
运算L使Num2的符号向左移动一位,最左边的符号保留,最右边补。例如,会变为。
运算N是空操作,对Num2没有影响。
在对Num1和Num2执行完所有运算后,Num2的最终值应与石板第六行的标记值一致。如果Num2的最终值不足8个符号,则在左侧用填充(例如,会变为)。
瓦恩博士说:“我已经验证了所有石板在格式、行数、符号数量、符号类型等方面都符合假设。但我需要验证第1至5行描述的数学运算结果确实与第6行一致。”
输入
第一行包含一个整数(),表示石板的数量。接下来的行描述了块石板,如问题描述所示。
输出
输出共行。第一行输出“COWCULATIONS OUTPUT”。随后每块石板对应一行输出,结果为“YES”(石板符合瓦恩博士的假设)或“NO”(不符合)。最后一行输出“END OF OUTPUT”。
输入数据 1
5
VVVVU
VVVVU
A
A
A
VVVVVVUV
VVCCV
VVDCC
L
R
A
VVVVUCVC
VVCCV
VVDCC
R
L
A
VVVVUCVV
VVUUU
VVVVU
A
N
N
VVVVVUCU
DDDDD
VVVVU
A
L
L
UVVVVVVV
输出数据 1
COWCULATIONS OUTPUT
YES
YES
YES
NO
YES
END OF OUTPUT
来源
Mid-Atlantic 1996