古罗马国王在确定魔方是否有效时遇到困难,因为他正在检查的魔方在数字之间不包含任何分隔符。他聘请了一名软件工程师来帮助他确定魔术方块是否有效。
输入说明
输入来自STDIN或命令行参数。您不能在变量中预先初始化输入(例如,“此程序需要在变量中输入x
”)。输入采用以下格式:
<top>,<middle>,<bottom>
每个的<top>
,<middle>
以及<bottom>
是只会包含大写字符的字符串I
,V
和X
。它将不包含空格或任何其他字符。每个字符串代表三个罗马数字,从而形成一个3x3的数字矩阵。但是,这些罗马数字可能(但不一定)是不明确的。请允许我用一个例子来说明。考虑以下三个罗马数字示例行,每个数字之间没有空格:
IVIIIIX
因为字母之间没有空格,所以这里的数字有两个可能:
- 1,8,9(
I VIII IX
) - 4,3,9(
IV III IX
)
当您认为矩阵的所有三行都可能模棱两可时,单个输入就有可能存在许多不同的3x3矩阵。
请注意,诸如1、7、1、9(I VII I IX
)之类的序列是不可能的,因为每一行将始终代表三个罗马数字。另请注意,罗马数字必须有效,因此,诸如1、7、8(I VII IIX
)之类的序列也是不可能的。
输出说明
输出:
真实值和虚假值必须保持一致。它们用逗号分隔。
关于什么被认为是唯一的,需要一些解释。只要矩阵在与先前找到的矩阵完全相同的位置上没有完全相同的数字,就将其视为唯一。这意味着先前找到的矩阵的反射等被视为唯一。
输入和输出示例
在这些示例中,我将其true
用作真实值和false
虚假值。
输入:VIIIIVI,IIIVVII,IVIXII
输出:( 24,true
魔术三角形是8-1-6、3-5-7、4-9-2。)
输入:IIIXVIII,IVIII,VIIII
输出:210,false
附加功能
- 如果您选择的语言具有内置罗马数字转换功能,则不允许使用该功能。