ในเกมPickominoมีไพ่หลายใบวางอยู่กลางโต๊ะแต่ละแผ่นมีจำนวนเต็มบวกที่แตกต่างกัน ในแต่ละเทิร์นผู้เล่นจะทอยลูกเต๋าในวิธีที่แน่นอนและได้รับคะแนนซึ่งเป็นจำนวนเต็มที่ไม่ใช่ค่าลบ
ตอนนี้ผู้เล่นจะนำไพ่ที่มีจำนวนสูงสุดซึ่งยังคงต่ำกว่าหรือเท่ากับคะแนนเอาไพ่ออกจากตรงกลางและเพิ่มลงในสแต็กของพวกเขา หากไม่สามารถทำได้เพราะตัวเลขทั้งหมดที่อยู่ตรงกลางนั้นสูงกว่าคะแนนของผู้เล่นผู้เล่นจะสูญเสียไทล์สูงสุดจากสแต็กของพวกเขา (ซึ่งถูกเพิ่มเข้ามาล่าสุด) ซึ่งจะถูกส่งกลับไปที่ตรงกลาง หากผู้เล่นไม่มีไทล์เหลือจะไม่มีอะไรเกิดขึ้น
ความท้าทาย
จำลองผู้เล่นที่เล่นเกมกับตัวเอง คุณจะได้รับรายชื่อของไพ่ที่อยู่ตรงกลางและรายการคะแนนที่ผู้เล่นได้รับ ส่งคืนรายการไพ่ของผู้เล่นหลังจากประเมินผลรอบทั้งหมดแล้ว
กฏท้าทาย
- คุณสามารถสมมติได้ว่ารายการที่มีไทล์เรียงตามลำดับและไม่มีจำนวนเต็มสองเท่า
- คุณสามารถนำรายการเข้าทั้งสองตามลำดับที่คุณต้องการ
- เอาท์พุทต้องรักษาลำดับของไทล์บนสแต็ก แต่คุณสามารถตัดสินใจได้ว่ารายการเรียงลำดับจากบนลงล่างหรือจากล่างขึ้นบน
กฎทั่วไป
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
อย่าปล่อยให้ภาษารหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณด้วยกฎ I / O ที่เป็นค่าเริ่มต้นดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีพร้อมพารามิเตอร์ที่เหมาะสมและประเภทผลตอบแทนโปรแกรมเต็มรูปแบบ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงก์พร้อมทดสอบรหัสของคุณ (เช่นTIO )
- ขอแนะนำให้เพิ่มคำอธิบายสำหรับคุณ
ตัวอย่าง
(นำมาจาก testcase ที่ 6)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
คะแนนแรกคือ 22 ดังนั้นให้จับไทล์สูงสุดที่อยู่ตรงกลาง <= 22 ซึ่งก็คือ 22
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
คะแนนถัดไปคือ 22 ดังนั้นหยิบไทล์สูงสุดที่อยู่ตรงกลาง <= 22 เนื่องจากได้รับ 22 แล้วผู้เล่นจะต้องมี 21
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
คะแนนถัดไปคือ 22 แต่ทุกหมายเลข <= 22 ได้รับแล้ว ดังนั้นผู้เล่นจะสูญเสียไทล์สูงสุดบนสแต็ค (21) ซึ่งจะถูกส่งกลับไปที่กลาง
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
คะแนนถัดไปคือ 23, 21 และ 24 ดังนั้นผู้เล่นจึงนำไพ่เหล่านี้มาจากตรงกลาง
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
ผู้เล่น busts และศูนย์คะแนน ดังนั้นไทล์ที่มีหมายเลข 24 (สูงสุดบนสแต็ก) จะถูกส่งกลับไปที่ตรงกลาง
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
คะแนนสุดท้ายคือ 22 แต่ไทล์ทั้งหมด <= 22 ถูกนำไปใช้แล้วดังนั้นผู้เล่นจะแพ้ไทล์สูงสุดบนสแต็ก (21)
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
กรณีทดสอบ
(ด้วยไทล์สูงสุดบนสุดในรายการเอาท์พุท)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []