ขอบคุณไอเดียที่ @ MartinBüttnerจากการสนทนาในแชท
Mahjongเป็นเกมไพ่ที่ได้รับความนิยมอย่างมากในเอเชีย โดยทั่วไปจะเล่นกับผู้เล่นสี่คนและเป้าหมายของเกมคือการเป็นคนแรกที่เล่นไพ่ที่ถูกต้องโดยใช้มือ สำหรับความท้าทายนี้เราจะพิจารณาเกมที่เรียบง่าย - PPCG ไพ่นกกระจอก
ใน PPCG ไพ่นกกระจอก, มีสามชุด - m
, p
และs
- และกระเบื้องที่มีเลขจากไป1
9
มีสี่สำเนาของไพ่แต่ละใบและไพ่จะถูกแทนด้วยหมายเลขตามด้วยชุดไพ่ (เช่น3m
, 9s
)
ไพ่นกกระจอก PPCG ที่เสร็จสมบูรณ์แล้วประกอบด้วยสี่ชุดสามชุดและคู่รวมเป็น 14 แผ่น
ชุดของสามสามารถเป็นได้ทั้ง:
- ไพ่สามใบเดียวกัน (เช่น
4s 4s 4s
แต่ไม่ใช่4m 4p 4s
) หรือ - ลำดับของไพ่สามติดต่อกันในชุดเดียวกัน (เช่น
1s 2s 3s
หรือ6p 7p 8p
แต่ไม่3s 4m 5m
หรือ3p 5p 7p
) ลำดับไม่ห่อ (ดังนั้นจึง9m 1m 2m
ไม่ถูกต้อง)
คู่คือไพ่สองใบที่เหมือนกัน (เช่น5s 5s
)
ความท้าทาย
โปรแกรมของคุณจะได้รับไพ่ 13 ใบแยกด้วยกันโดยที่แต่ละแผ่นมีไม่เกินสี่ครั้ง คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่นที่ใช้ในสตริง
งานของคุณคือการหาไพ่ที่ 14 ที่เป็นไปได้ทั้งหมด ("รอ") ซึ่งเมื่อเพิ่มลงในมือจะกลายเป็นไพ่นกกระจอก PPCG ที่เสร็จสมบูรณ์ ไทล์เอาท์พุทควรคั่นด้วยช่องว่าง แต่สามารถอยู่ในลำดับใดก็ได้ อนุญาตช่องว่างนำหน้าหรือต่อท้าย
โปรแกรมของคุณควรทำงานในเวลาที่เหมาะสมไม่เกินหนึ่งนาที
ตัวอย่าง
Input: 1m 1m 1m 4s 4s 4s 7p 7p 7p 3m 3m 3m 9s
Output: 9s
Input: 1m 1m 1m 3m 3m 3m 5m 5m 5m 2s 3s 7p 8p
Output:
Input: 1m 2m 2m 3m 3m 3m 3m 4m 1s 1s 9s 9s 9s
Output: 1s
Input: 1m 1m 1m 2m 3m 4m 5m 6m 7m 8m 9m 9m 9m
Output: 1m 2m 3m 4m 5m 6m 7m 8m 9m
Input: 1m 1m 1m 5p 2m 3m 5p 7s 8s 5p 9s 9s 9s
Output: 1m 4m 6s 9s
ในตัวอย่างแรก1m 4s 7p 3m
รูปแบบทั้งหมดที่มีอยู่สามเท่าปล่อยให้อยู่คนเดียว9s
ในรูปแบบคู่
ในตัวอย่างที่สอง, 2s 3s
และ7p 8p
สามารถสร้างได้เฉพาะซีเควนซ์และไทล์ที่เหลือสามารถสร้างแบบสามส่วนได้เท่านั้น ดังนั้นจึงไม่มีคู่ใดสามารถเกิดขึ้นได้และไม่มีผลลัพธ์
1m2m3m 2m3m4m 3m3m 1s1s 9s9s9s
ในตัวอย่างที่สามมือแยกออกเป็น ปกตินี้จะรอ3m 1s
แต่เป็นทั้งสี่ได้ถูกนำมาใช้ในการรอคอยที่มีอยู่เพียงอย่างเดียวคือ3m
1s
ในตัวอย่างที่สี่m
ไพ่ทั้งหมดทำมือให้เสร็จ ตัวอย่างเช่นสำหรับ1m
หนึ่งอาจมี1m1m1m 1m2m3m 4m5m6m 7m8m9m 9m9m
ซึ่งเป็นมือที่สมบูรณ์
ลองหาตัวอย่างที่เหลือจากตัวอย่างที่สี่และตัวอย่างที่ห้า :)
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นวิธีการแก้ปัญหาในไบต์ที่น้อยที่สุดชนะ ช่องโหว่มาตรฐานใช้