Król starożytnego Rzymu ma trudności z ustaleniem, czy magiczny kwadrat jest prawidłowy, czy nie, ponieważ magiczny kwadrat, który sprawdza, nie zawiera żadnych separatorów między liczbami. Zatrudnił inżyniera oprogramowania, który pomoże mu ustalić, czy magiczny kwadrat jest prawidłowy, czy nie.
Opis wejścia
Dane wejściowe pochodzą z argumentów STDIN lub wiersza poleceń. Nie można wstępnie zainicjować danych wejściowych w zmiennej (np. „Ten program oczekuje danych wejściowych w zmiennej x
”). Dane wejściowe mają następujący format:
<top>,<middle>,<bottom>
Każdy z <top>
, <middle>
i <bottom>
to ciąg znaków, który będzie zawsze tylko zawierać duże litery I
, V
i X
. Nie będzie zawierać spacji ani żadnych innych znaków. Każdy ciąg reprezentuje trzy cyfry rzymskie, w wyniku czego powstaje macierz liczb 3x3. Jednak te cyfry rzymskie mogą (ale niekoniecznie) być niejednoznaczne . Pozwól, że zilustruję to przykładem. Rozważ następujący przykładowy rząd trzech cyfr rzymskich, bez spacji między każdą liczbą:
IVIIIIX
Ponieważ między literami nie ma spacji, cyfry mają dwie możliwości:
- 1, 8, 9 (
I VIII IX
) - 4, 3, 9 (
IV III IX
)
Gdy weźmiesz pod uwagę, że wszystkie trzy wiersze macierzy mogą być niejednoznaczne, istnieje możliwość, że z jednego wejścia będzie wiele różnych matryc 3x3.
Zauważ, że sekwencje takie jak 1, 7, 1, 9 ( I VII I IX
) nie są możliwe, ponieważ każdy wiersz zawsze będzie reprezentował trzy cyfry rzymskie. Zauważ też, że cyfry rzymskie muszą być poprawne, więc sekwencje takie jak 1, 7, 8 ( I VII IIX
) również nie są możliwe.
Opis wyjścia
Wynik:
- Liczba całkowita
A
, gdzieA
jest liczba unikalnych macierzy 3x3, które można utworzyć z niejednoznacznych danych wejściowych, oraz: - Truthy wartość, jeśli każdy z unikalnych matryc 3x3 tworzą magiczny kwadrat, lub:
- Falsy wartość, jeżeli żaden z unikalnych matryc 3x3 tworzą magiczny kwadrat.
Wartości prawdy i fałszu muszą być spójne. Są oddzielone przecinkiem.
Wymagane jest wyjaśnienie tego, co jest uważane za unikalne. Dopóki macierz nie ma dokładnie takich samych liczb w dokładnie takich samych pozycjach jak poprzednio znaleziona macierz, jest liczona jako unikalna. Oznacza to, że odbicia itp. Wcześniej znalezionych matryc są liczone jako unikalne.
Przykładowe wejścia i wyjścia
W tych przykładach używam true
jako mojej prawdziwej wartości i false
mojej wartości fałszowania.
Wejście: VIIIIVI,IIIVVII,IVIXII
Wyjście: 24,true
(Magiczny trójkąt to 8-1-6, 3-5-7, 4-9-2.)
Wejście: IIIXVIII,IVIII,VIIII
Wyjście:210,false
Dodatki
- Nie możesz korzystać z wbudowanych funkcji konwersji cyframi rzymskimi, jeśli masz wybrany język.