고대 로마의 왕은 마법의 광장이 유효한지 아닌지를 결정하는 데 어려움을 겪고 있습니다. 그가 확인하는 마법의 광장에는 숫자 사이에 구분 기호가 없기 때문입니다. 그는 매직 스퀘어가 유효한지 여부를 판단하는 데 도움이되는 소프트웨어 엔지니어를 고용했습니다.
입력 설명
입력은 STDIN 또는 명령 행 인수에서 제공됩니다. 변수에 입력을 미리 초기화 할 수 없습니다 (예 : "이 프로그램은 변수에 입력을 기대합니다 x
"). 입력 형식은 다음과 같습니다.
<top>,<middle>,<bottom>
각각 <top>
, <middle>
그리고 <bottom>
오직 대문자 문자를 포함하는 문자열 I
, V
그리고는 X
. 공백이나 다른 문자는 포함하지 않습니다. 각 문자열은 3 개의 로마 숫자를 나타내므로 3x3의 숫자 행렬이됩니다. 그러나 이러한 로마 숫자는 모호 할 수도 있지만 반드시 그런 것은 아닙니다 . 이것을 예로 들어 설명해 드리겠습니다. 각 숫자 사이에 공백이없는 세 개의 로마 숫자로 구성된 다음 행을 고려하십시오.
IVIIIIX
문자 사이에 공백이 없기 때문에 숫자에 두 가지 가능성이 있습니다.
- 1, 8, 9 (
I VIII IX
) - 4, 3, 9 (
IV III IX
)
행렬의 세 행이 모두 모호 할 수 있다고 생각할 때 단일 입력과 다른 3x3 행렬이 많이있을 가능성이 있습니다.
I VII I IX
각 행이 항상 3 개의 로마 숫자를 나타내므로 1, 7, 1, 9 ( ) 와 같은 시퀀스 는 불가능합니다. 또한 로마 숫자는 유효해야하므로 1, 7, 8 ( I VII IIX
) 과 같은 시퀀스 도 불가능합니다.
출력 설명
산출:
- integer
A
. 여기서A
모호한 입력으로 구성 할 수있는 고유 한 3x3 행렬의 수는 다음과 같습니다. - truthy의 값 경우 어떤 고유 한 3 × 3 행렬은 마법의 광장을 형성하거나 :
- falsy 값 경우 아무도 고유의 3 × 3 행렬은 마법의 사각형을 형성하지 않는다.
진실되고 거짓된 가치는 일관되어야합니다. 쉼표로 구분됩니다.
고유 한 것으로 간주되는 것에 대한 설명이 필요합니다. 행렬이 이전에 찾은 행렬과 정확히 같은 위치에 정확히 같은 숫자가없는 한 고유 한 것으로 계산됩니다. 즉, 이전에 찾은 행렬의 반사 등이 고유 한 것으로 계산됩니다.
입력 및 출력 예
이 예에서 나는 true
진실한 가치와 허위 가치로 사용 false
합니다.
입력 : VIIIIVI,IIIVVII,IVIXII
출력 : 24,true
(마법의 삼각형은 8-1-6, 3-5-7, 4-9-2입니다.)
입력 : IIIXVIII,IVIII,VIIII
출력 :210,false
엑스트라
- 선택한 언어에 언어가 있으면 내장 로마 숫자 변환 기능을 사용할 수 없습니다.