Dar um desafio envolvendo uma referência de Star Trek logo após 4 de maio pode ser desaprovado, mas aqui vai.
Você, Luke, Anakin, Palpatine, Yoda e Han Solo estão envolvidos em um torneio insano de Rock, Paper, Scissor, Lizard, Spock.
O problema aqui é que você só pode usar uma ordem fixa de movimentos. Se o seu pedido for "R", você deverá usar o Rock até perder ou vencer contra todos. Se o seu pedido for RRV, você deverá usar 2 Rocks seguidas por um Spock e continuar repetindo até ganhar ou perder.
Luke, Anakin, Palpatine, Yoda e Han Solo enviaram seus respectivos pedidos e você, sendo um hacker experiente, colocou as mãos em cada um deles!
Com esse conhecimento, você deve criar seus pedidos para o torneio. Como todos querem vencer, você deseja criar uma ordem para vencer o torneio vencendo todos. Mas isso pode não ser possível em todas as circunstâncias.
Caso haja uma possível ordem vencedora, imprima-a. Se não houver uma maneira possível de ganhar, imprima -1 (ou 0 ou Falso ou "impossível")
Entrada : uma lista de 5 pedidos
Saída : uma única ordem ou -1
Entrada de amostra 1
R
P
S
L
V
Saída de amostra 1
-1
Explicação 1
Não importa o que você jogue na sua primeira jogada, haverá pelo menos uma pessoa que o derrotará; portanto, não é possível que você vença.
Entrada de amostra 2
RPS
RPP
R
SRR
L
Saída de amostra 2
RPSP
Explicação 2
Depois de tocar Rock no seu primeiro movimento, você acaba batendo "L" e "SRR" e empatando com o resto. Isso ocorre porque o Lagarto e a Tesoura perdem para o Rock. Quando você jogar Paper em seguida, você vencerá "R" e empatará contra os 2. restantes. Isso ocorre porque o Rock perde para o Paper. Quando você jogar Scissors em seguida, você vencerá "RPP", pois Scissor bate Paper.
Por fim, você vencerá "RPS" com o seu Paper, já que o Paper vence o Rock.
Aqui está uma lista de notações (você pode usar 5 literais, mas especifique na sua resposta):
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
Aqui está uma lista de todos os resultados possíveis:
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
Isso é código-golfe , e o menor número de bytes vence.
PS: Entre em contato se precisar de mais casos de teste.