Opis wyzwania
Domino to gra z kafelkami z dwiema wartościami - jedną po lewej, drugą po prawej, na przykład [2|4]lub [4|5]. Dwa kafelki można połączyć, jeśli zawierają wspólną wartość. Dwie powyższe płytki można połączyć w następujący sposób:
[2|4][4|5]
Nazwiemy sekwencję npołączonych płytek łańcuchem o długości n. Oczywiście płytki mogą się obracać, tak płytek [1|2], [1|3]i [5|3]mogą zostać zmienione do łańcucha [2|1][1|3][3|5]o długości 3.
Biorąc pod uwagę listę par liczb całkowitych, określ długość najdłuższego łańcucha, który można utworzyć za pomocą tych płytek. Jeśli lista jest pusta, poprawną odpowiedzią jest 0(pamiętaj, że zawsze możesz utworzyć łańcuch długości 1z niepustej listy płytek).
Przykładowe wejście / wyjście
[(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10
([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3])
[(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), (-6, 17), (-16, 5), (-3, -16), (-16, 19), (12, -8)] -> 4
([5|-16][-16|-3][-3|12][12|-8])
[(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)] -> 7
([1|1][1|1][1|1][1|1][1|1][1|1][1|1])
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9), (10, 11)] -> 1
(any chain of length 1)
[] -> 0
(no chain can be formed)
O(n!)jak chcesz
I guess it's P