Mancalaเป็นชื่อของครอบครัวของเกมกระดานที่มักจะเกี่ยวข้องกับชุดถ้วยที่เต็มไปด้วยเม็ดที่ผู้เล่นจัดการ ความท้าทายนี้จะใช้กฎเฉพาะที่กำหนดไว้สำหรับชุดตัวเลือกเล่นไพ่คนเดียวของเกม
กระดานประกอบด้วย "ตะกร้า" ที่ปลายด้านหนึ่งแล้วตามด้วยจำนวนถ้วยนับไม่ถ้วนเริ่มต้นจาก 1 ถ้วยบางถ้วยจะมีเม็ดประคำอยู่จำนวนหนึ่ง หากn
ถ้วยที่สามมีn
เม็ดบีดอยู่ตรงนั้นคุณอาจ "หว่าน" เม็ดบีดจากมัน การหว่านหมายถึงการนำn
ลูกปัดทั้งหมดออกจากถ้วยแล้วนำไปใส่ครั้งละหนึ่งถ้วยในตะกร้า ลูกปัดสุดท้ายจะเข้าสู่ตะกร้า ผู้เล่นชนะเมื่อทุกเม็ดบนกระดานอยู่ในตะกร้า
เห็นได้ชัดว่ามีหลายบอร์ดที่ไม่สามารถเอาชนะได้เช่นถ้ามีลูกปัดหนึ่งเม็ดในถ้วยที่สอง ไม่มีการเล่นที่ถูกกฎหมายเพราะถ้วยทั้งหมดที่มี 0 เม็ดไม่สามารถหว่านได้และถ้วยที่สองไม่มีเม็ดพอที่จะหว่าน เห็นได้ชัดว่ามันไม่สนุกดังนั้นงานของคุณคือการสร้างกระดานที่มีชัย
งาน
กำหนดจำนวนเต็มบวกแทนจำนวนของลูกปัดออกรายการของจำนวนเต็มไม่ลบแสดงจำนวนลูกปัดที่ควรใส่ในแต่ละถ้วยเพื่อให้คณะกรรมการมีชัยตามที่อธิบายไว้ข้างต้น รายการนี้ไม่ควรมีศูนย์ใด ๆ ต่อท้าย
สำหรับเม็ดบีดที่กำหนดจำนวนใด ๆ จะมีการกำหนดค่าบอร์ดที่ชนะได้หนึ่งชุดเสมอ
สาธิต
นี่คือการสาธิตวิธีการเล่นกระดานชัยและใส่ของ 4. [0, 1, 3]
คณะกรรมการมีชัยคือ [1, 2, 0]
เราเริ่มต้นด้วยการย้ายที่ใช้ได้เฉพาะหว่านเม็ดจากถ้วยที่สามที่จะได้รับ ตอนนี้เรามีทางเลือกจริง [0, 2, 0]
แต่ถูกต้องเพียงหนึ่งคือการหว่านเมล็ดถ้วยแรกที่ได้รับ: จากนั้นเราหว่านถ้วยที่สองที่ให้ผลผลิต[1, 0, 0]
และในที่สุดเราก็หว่านถ้วยแรกอีกครั้งเพื่อให้ได้ถ้วยเปล่าทั้งหมด
กรณีทดสอบ:
1 => [1]
2 => [0, 2]
3 => [1, 2]
4 => [0, 1, 3]
5 => [1, 1, 3]
6 => [0, 0, 2, 4]
7 => [1, 0, 2, 4]
8 => [0, 2, 2, 4]
9 => [1, 2, 2, 4]
10 => [0, 1, 1, 3, 5]
11 => [1, 1, 1, 3, 5]
12 => [0, 0, 0, 2, 4, 6]
13 => [1, 0, 0, 2, 4, 6]
14 => [0, 2, 0, 2, 4, 6]
15 => [1, 2, 0, 2, 4, 6]
16 => [0, 1, 3, 2, 4, 6]
17 => [1, 1, 3, 2, 4, 6]
18 => [0, 0, 2, 1, 3, 5, 7]
19 => [1, 0, 2, 1, 3, 5, 7]
20 => [0, 2, 2, 1, 3, 5, 7]
ขอขอบคุณPeterTaylor ที่มากับโปรแกรมเพื่อสร้างกรณีทดสอบ!