Виклик, пов’язаний із посиланням на Star Trek відразу після 4 травня, може нахмуритися, але ось це.
Ви, Люк, Анакін, Палпатін, Йода та Хан Соло, берете участь у шаленому турнірі з року, паперу, ножиць, ящірок, спока.
Привід тут полягає в тому, що вам дозволяється використовувати лише фіксований порядок рухів. Якщо ваше замовлення "R", тоді вам доведеться використовувати Рок, поки ви не програєте або виграєте проти всіх. Якщо ваше замовлення - RRV, вам доведеться використовувати 2 Скелі, а потім Спок, і продовжувати повторювати, поки ви не виграли чи програли.
Лука, Анакін, Палпатін, Йода та Хан Соло подали свої відповідні замовлення, і ви, як експерт-хакер, отримали свої руки на кожне їх замовлення!
Маючи ці знання, ви повинні розробити замовлення на турнір. Оскільки всі хочуть виграти, ви хочете створити таке замовлення, щоб ви виграли турнір, перемігши всіх. Але це може бути неможливо за будь-яких обставин.
У випадку, якщо є можливе виграшне замовлення, роздрукуйте його. Якщо ви не можете перемогти, роздрукуйте -1 (або 0 або помилково або "неможливо")
Введення : список із 5 замовлень
Вихід : єдине замовлення або -1
Зразок введення 1
R
P
S
L
V
Вибірка зразка 1
-1
Пояснення 1
Незалежно від того, в що ви граєте в свій перший хід, знайдеться принаймні одна людина, яка б’є вас, отже, виграти це неможливо.
Зразок введення 2
RPS
RPP
R
SRR
L
Вибірка зразка 2
RPSP
Пояснення 2
Як тільки ви граєте Рок у своєму першому русі, ви в кінцевому рахунку б'єте "L" і "SRR" і прив'язуєтесь до решти. Це тому, що Ящірка та Ножиці програють Року. Коли ви будете грати у папері далі, ви будете бити "R" і прив'язувати до решти 2. Це тому, що Rock втрачає Paper. Якщо ви будете грати у ножиці далі, ви виграєте проти "RPP", коли Scissor б'є папір.
Нарешті, ви будете бити "RPS" своїм папером, коли папір б'є рок
Ось перелік позначень (ви можете використовувати будь-які 5 літералів, але вкажіть, будь ласка, у своїй відповіді):
R : Rock
P : Paper
S : Scissor
L : Lizard
V : Spock
Ось перелік усіх можливих результатів:
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
Це код-гольф , тому виграє найменше байтів.
PS: Повідомте мене, якщо вам потрібно більше тестових випадків.