Wyzwanie związane z odniesieniem do Star Trek tuż po 4 maja może być zaskoczone, ale proszę bardzo.
Ty, Luke, Anakin, Palpatine, Yoda i Han Solo uczestniczycie w szalonym turnieju rocka, papieru, nożyczek, jaszczurki i Spocka.
Problem polega na tym, że możesz używać tylko stałej kolejności ruchów. Jeśli twoje zamówienie to „R”, musisz używać Skały, dopóki nie przegrasz lub nie wygrasz ze wszystkimi. Jeśli twoje zamówienie to RRV, musisz użyć 2 kamieni, a następnie Spocka i powtarzać, dopóki nie wygrasz lub przegrasz.
Luke, Anakin, Palpatine, Yoda i Han Solo złożyli odpowiednie zamówienia, a Ty jako ekspert hakerów dostałeś swoje zamówienia!
Mając tę wiedzę, musisz zaprojektować swoje zamówienie na turniej. Ponieważ każdy chce wygrać, musisz stworzyć takie zamówienie, aby wygrać turniej, pokonując wszystkich. Ale może to nie być możliwe we wszystkich okolicznościach.
W przypadku możliwego zwycięskiego zamówienia wydrukuj je. Jeśli nie ma możliwości wygrania, wydrukuj -1 (lub 0 lub Fałsz lub „niemożliwe”)
Dane wejściowe : lista 5 zamówień
Wyjście : pojedyncze zamówienie lub -1
Przykładowe wejście 1
R
P
S
L
V
Przykładowe dane wyjściowe 1
-1
Wyjaśnienie 1
Bez względu na to, co zagrasz w swoim pierwszym ruchu, będzie co najmniej jedna osoba, która cię pokona, dlatego nie można wygrać.
Przykładowe wejście 2
RPS
RPP
R
SRR
L
Przykładowe wyjście 2
RPSP
Wyjaśnienie 2
Kiedy grasz w Rock w pierwszym ruchu, ostatecznie pokonujesz „L” i „SRR” i remisujesz z resztą. To dlatego, że Jaszczurka i Nożyce przegrywają z Kamieniem. Kiedy następnie zagrasz w Paper, pokonasz „R” i remisujesz z pozostałymi 2. To dlatego, że Rock przegrywa z Paper. Gdy następnie zagrasz w nożyczki, wygrasz przeciwko „RPP”, gdy Scissor pokona papier.
W końcu pokonasz „RPS” swoim Paper, ponieważ Paper pokonuje Rock.
Oto lista notacji (możesz użyć dowolnych 5 literałów, ale proszę podać w swojej odpowiedzi):
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
Oto lista wszystkich możliwych wyników:
winner('S', 'P') -> 'S'
winner('S', 'R') -> 'R'
winner('S', 'V') -> 'V'
winner('S', 'L') -> 'S'
winner('S', 'S') -> Tie
winner('P', 'R') -> 'P'
winner('P', 'V') -> 'P'
winner('P', 'L') -> 'L'
winner('P', 'S') -> 'S'
winner('P', 'P') -> Tie
winner('R', 'V') -> 'V'
winner('R', 'L') -> 'R'
winner('R', 'S') -> 'R'
winner('R', 'P') -> 'P'
winner('R', 'R') -> Tie
winner('L', 'R') -> 'R'
winner('L', 'V') -> 'L'
winner('L', 'S') -> 'S'
winner('L', 'P') -> 'L'
winner('L', 'L') -> Tie
winner('V', 'R') -> 'V'
winner('V', 'L') -> 'L'
winner('V', 'S') -> 'V'
winner('V', 'P') -> 'P'
winner('V', 'V') -> Tie
To jest golf golfowy , więc wygrywa najmniej bajtów.
PS: Daj mi znać, jeśli potrzebujesz więcej przypadków testowych.