Королю Древнего Рима трудно определить, действителен ли магический квадрат или нет, потому что проверяемый им магический квадрат не содержит разделителей между числами. Он нанял разработчика программного обеспечения, чтобы помочь ему определить, действителен ли магический квадрат или нет.
Описание входа
Входные данные поступают в STDIN или аргументы командной строки. Вы не можете предварительно инициализировать ввод в переменной (например, «эта программа ожидает ввод в переменной x
»). Ввод в следующем формате:
<top>,<middle>,<bottom>
Каждый из <top>
, <middle>
и <bottom>
это строка , которая будет всегда содержать только символы в верхнем регистре I
, V
и X
. Он не будет содержать пробелов или любых других символов. Каждая строка представляет три римские цифры, в результате чего получается матрица чисел 3х3. Однако эти римские цифры могут (но не обязательно) быть неоднозначными . Позвольте мне проиллюстрировать это на примере. Рассмотрим следующий пример строки из трех римских цифр без пробелов между каждым числом:
IVIIIIX
Поскольку между буквами нет пробелов, здесь есть две возможности для чисел:
- 1, 8, 9 (
I VIII IX
) - 4, 3, 9 (
IV III IX
)
Если учесть, что все три строки матрицы могут быть неоднозначными, существует вероятность, что с одного входа будет много разных матриц 3х3.
Обратите внимание, что такие последовательности, как 1, 7, 1, 9 ( I VII I IX
) невозможны, поскольку каждая строка всегда будет представлять три римские цифры. Также обратите внимание, что римские цифры должны быть действительными, поэтому такие последовательности, как 1, 7, 8 ( I VII IIX
) также невозможны.
Описание выхода
Вывод:
- Целое число
A
, гдеA
- количество уникальных матриц 3х3, которые можно сформировать из неоднозначного ввода, и: - Truthy значение , если какой - либо из уникальных 3x3 матриц образуют магический квадрат, или:
- Falsy значение , если ни один из уникальных 3x3 матриц не образуют магический квадрат.
Истинные и ложные ценности должны быть последовательными. Они разделены запятой.
Требуется некоторое объяснение того, что считается уникальным. Пока матрица не имеет точно такие же числа в тех же позициях, что и ранее найденная матрица, она считается уникальной. Это означает, что отражения и т. Д. Ранее найденных матриц считаются уникальными.
Пример входов и выходов
В этих примерах я использую true
свою истинную ценность и false
свою ложную ценность.
Вход: VIIIIVI,IIIVVII,IVIXII
Выход: 24,true
(Волшебный треугольник 8-1-6, 3-5-7, 4-9-2.)
Вход: IIIXVIII,IVIII,VIIII
Выход:210,false
Дополнительно
- Вам не разрешается использовать встроенные функции преобразования римских цифр, если у выбранного вами языка есть такие.