Dar un desafío con una referencia de Star Trek justo después del 4 de mayo puede estar mal visto, pero aquí va.
Usted, Luke, Anakin, Palpatine, Yoda y Han Solo están involucrados en un loco torneo de Rock, Paper, Scissor, Lizard, Spock.
El problema aquí es que solo puedes usar un orden fijo de movimientos. Si su orden es "R", entonces debe usar Rock, hasta que pierda o gane contra todos. Si su orden es RRV, entonces debe usar 2 rocas seguidas de un Spock y seguir repitiendo hasta que haya ganado o perdido.
¡Luke, Anakin, Palpatine, Yoda y Han Solo han enviado sus respectivos pedidos y tú, como experto hacker, tienes en tus manos cada uno de ellos!
Con este conocimiento, debe diseñar su pedido para el torneo. Dado que todos quieren ganar, desea crear un pedido para ganar el torneo al vencer a todos. Pero esto puede no ser posible en todas las circunstancias.
En caso de que haya un posible pedido ganador, imprímalo. Si no hay una forma posible de ganar, imprima -1 (o 0 o Falso o "imposible")
Entrada : una lista de 5 pedidos
Salida : un solo pedido o -1
Entrada de muestra 1
R
P
S
L
V
Salida de muestra 1
-1
Explicacion 1
No importa lo que juegues en tu primer movimiento, habrá al menos una persona que te gane, por lo tanto, no es posible que ganes.
Entrada de muestra 2
RPS
RPP
R
SRR
L
Salida de muestra 2
RPSP
Explicacion 2
Una vez que juegas Rock en tu primer movimiento, terminas venciendo a "L" y "SRR" y empatas contra el resto. Esto se debe a que Lizard y Scissors pierden ante Rock. Cuando juegues Paper a continuación, vencerás a "R" y empatarás contra los 2 restantes. Esto se debe a que Rock pierde contra Paper. Cuando juegues a Scissors a continuación, ganarás contra "RPP" cuando Scissor venza a Paper.
Finalmente, vencerás a "RPS" con tu Paper como Paper beats Rock.
Aquí hay una lista de anotaciones (puede usar 5 literales, pero especifique en su respuesta):
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
Aquí hay una lista de todos los resultados posibles:
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
Este es el código de golf , por lo que ganan menos bytes.
PD: Avíseme si necesita más casos de prueba.