Istnieje wiele zagadek z dopasowaniami, które polegają na dodawaniu, usuwaniu lub przenoszeniu określonej liczby dopasowań w celu utworzenia nowych liczb lub kształtów. Tak jest z zegarem cyfrowym.
Biorąc pod uwagę prawidłowy czas na 12-godzinnym zegarze cyfrowym, wypisz cyfrę, która wymaga przesunięcia jak najmniejszej liczby linii, aby każda widoczna cyfra na zegarze stała się tą cyfrą. Jeśli więcej niż jedna cyfra jest minimum, wypisz je wszystkie. Jeśli nie jest możliwe, aby każda cyfra była taka sama, wartość wyjściowa -1
lub wartość fałszowania inna niż 0 (dostaniesz ich dużo).
Cyfry zegara wyglądają tak:
|
|
_
_|
|_
_
_|
_|
|_|
|
_
|_
_|
_
|_
|_|
_
|
|
_
|_|
|_|
_
|_|
_|
_
| |
|_|
Przypadki testowe:
Wejście: 123
Wyświetlanie zegara:
_ _
| : _| _|
| : |_ _|
Wynik: 4
Objaśnienie: Wyświetlenie 1:23
wymaga narysowania łącznie 12 linii. Dlatego, aby każda cyfra była taka sama, każda cyfra musiałaby mieć 4 linie. Jedyna cyfra zawierająca 4 linie to 4
. Dlatego odpowiedź musi być 4
.
Wejście: 1212
Wyświetlanie zegara:
_ _
| _| : | _|
| |_ : | |_
Wynik: -1
Objaśnienie: Wskazanie dla 12:12
wymaga 14 linii. 14 podzielone przez 4 nie jest liczbą całkowitą, dlatego niemożliwe jest, aby każda cyfra była taka sama.
Wejście: 654
Wyświetlanie zegara:
_ _
|_ : |_ |_|
|_| : _| |
Wynik: 5
Objaśnienie: Całkowita liczba linii wynosi 15. 15 podzielone przez 3 to 5, więc każda cyfra musi mieć 5 linii. Jedynymi cyfry, które mają 5 linii są 2
, 3
i 5
. Odpowiedź jest taka, 5
że potrzeba tylko 2 ruchów, aby każda cyfra 5. Po prostu przenieś linię w lewym dolnym rogu 6 do dolnej 4, a następnie:
_ _
|_ : |_ |_|
_| : _| _|
Następnie, jak widać, wystarczy przesunąć linię w prawym górnym rogu cyfry, która pierwotnie wynosiła 4 na górę, i otrzymujesz 5:55
. Aby każda cyfra a 2
lub 3
wymagała więcej niż 2 ruchów.
Wejście: 609
Wyświetlanie zegara:
_ _ _
|_ : | | |_|
|_| : |_| _|
Wyjście: 609
( 6,0,9
lub [6,0,9]
też ok).
Objaśnienie: 6
, 0
, i 9
są tylko cyfry, które mają 6 linii. Jako takie są również jedynymi możliwymi rozwiązaniami. Nietrudno dostrzec, że wykonanie jednego z nich jako jedynej cyfry wymagałoby dwóch ruchów. Dlatego wyprowadzasz wszystkie trzy cyfry.
Uwagi:
- Chociaż czas wejściowy musi być prawidłowy, czas wyjściowy nie (np.
999
Ponieważ wyjście jest OK.) - Jestem bardzo elastyczny z wkładem. Możesz wymagać wiodącego 0. Możesz użyć liczby z przecinkiem dziesiętnym. Możesz użyć ciągu. Możesz użyć tablicy. Możesz mieć parametr dla każdej cyfry.