การให้ความท้าทายที่เกี่ยวข้องกับการอ้างอิงของ Star Trek หลังจากวันที่ 4 พฤษภาคมอาจจะขมวดคิ้วได้
คุณลุคอนาคินพัลพาทีนโยดาและฮันโซโลมีส่วนร่วมในการแข่งขันบ้าของร็อค, กระดาษ, กรรไกร, จิ้งจก, สป็อค
การจับที่นี่คือคุณได้รับอนุญาตให้ใช้ลำดับการเคลื่อนที่ที่แน่นอนเท่านั้น หากคำสั่งซื้อของคุณคือ "R" คุณต้องใช้ Rock จนกว่าคุณจะแพ้หรือชนะกับทุกคน หากคำสั่งซื้อของคุณคือ RRV คุณต้องใช้ 2 Rocks ตามด้วย Spock และทำซ้ำจนกว่าคุณจะชนะหรือแพ้
Luke, Anakin, Palpatine, Yoda และ Han Solo ได้ส่งคำสั่งซื้อตามลำดับและคุณเป็นแฮ็กเกอร์มืออาชีพที่ได้รับคำสั่งจากคุณในแต่ละครั้ง!
ด้วยความรู้นี้คุณจะต้องออกแบบการสั่งซื้อสำหรับการแข่งขัน เนื่องจากทุกคนต้องการที่จะชนะคุณต้องการสร้างการสั่งซื้อแบบที่คุณชนะการแข่งขันโดยการตีทุกคน แต่สิ่งนี้อาจเป็นไปไม่ได้ในทุกสถานการณ์
ในกรณีที่มีคำสั่งซื้อที่เป็นไปได้ให้พิมพ์ออกมา หากไม่มีทางเป็นไปได้ที่คุณจะชนะให้พิมพ์ -1 (หรือ 0 หรือเท็จหรือ "เป็นไปไม่ได้")
ป้อนข้อมูล : รายการ 5 คำสั่งซื้อ
ผลลัพธ์ : คำสั่งเดียวหรือ -1
ตัวอย่างอินพุต 1
R
P
S
L
V
ตัวอย่างผลลัพธ์ 1
-1
คำอธิบาย 1
ไม่ว่าคุณจะเล่นอะไรในการย้ายครั้งแรกจะมีอย่างน้อยหนึ่งคนที่ชนะคุณดังนั้นจึงเป็นไปไม่ได้ที่คุณจะชนะ
ตัวอย่างอินพุต 2
RPS
RPP
R
SRR
L
ตัวอย่างผลลัพธ์ 2
RPSP
คำอธิบาย 2
เมื่อคุณเล่นร็อคในการย้ายครั้งแรกของคุณคุณจะเต้น "L" และ "SRR" และผูกกับส่วนที่เหลือ นี่เป็นเพราะ Lizard and Scissors พ่ายแพ้ต่อ Rock เมื่อคุณเล่น Paper ถัดไปคุณจะชนะ "R" และผูกกับ 2 ที่เหลือเนื่องจาก Rock สูญเสียกระดาษ เมื่อคุณเล่นกรรไกรต่อไปคุณจะชนะกับ "RPP" ในฐานะ Scissor beats Paper
ในที่สุดคุณจะเอาชนะ "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: แจ้งให้เราทราบหากคุณต้องการกรณีทดสอบเพิ่มเติม