Mölkky
Mölkkyเป็นเกมการขว้างปาแบบฟินแลนด์ ผู้เล่นใช้ไม้พิน (เรียกอีกอย่างว่า "mölkky") เพื่อพยายามเคาะหมุดไม้ที่มีขนาดใกล้เคียงกับการโยนพินซึ่งมีตัวเลขตั้งแต่ 1 ถึง 12 ตำแหน่งเริ่มต้นของพินมีดังนี้:
(07)(09)(08)
(05)(11)(12)(06)
(03)(10)(04)
(01)(02)
คำอธิบายนี้และกฎระเบียบดังต่อไปนี้จะขึ้นอยู่กับวิกิพีเดีย
กฎMölkkyประยุกต์
การเคาะมากกว่าหนึ่งพินจะทำคะแนนให้ได้ตามจำนวนที่กำหนดไว้บนพิน
การเคาะ2 พินขึ้นไปทำคะแนนจำนวนพินที่กระแทก (เช่นการกระแทก 3 พินทำคะแนน 3 คะแนน)
เป้าหมายของเกมคือการเข้าถึง50คะแนน การให้คะแนนมากกว่า 50 จะถูกลงโทษโดยกำหนดคะแนนกลับเป็น25คะแนน
สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะทำให้สมมติฐานที่ว่าหมุดอยู่เสมอในลำดับที่แน่นอนอธิบายไว้ข้างต้น (ในเกมจริงหมุดจะยืนขึ้นอีกครั้งหลังจากโยนแต่ละครั้งในตำแหน่งที่พวกเขาลงจอด)
กฎของMölkkyอื่น ๆ ทั้งหมดจะถูกละเว้นและพิจารณาผู้เล่นเพียงคนเดียวเท่านั้น
อินพุต
รายการที่ไม่ว่างเปล่าของ 12 บูลีน แต่ละรายการของบูลีนอธิบายผลของการโยน: 1ถ้าพินนั้นล้มลงและ0 เป็นอย่างอื่น booleans จะได้รับในการสั่งซื้อที่แน่นอนของหมุดจากบนซ้ายไปขวาด้านล่าง: 7 , 9 , 8 , 5 , 11 , 12 , 6 , 3 , 10 , 4 , 1 , 2
เอาท์พุต
คะแนนหลังจากทั้งหมดโยนอธิบายในการป้อนข้อมูลซึ่งคำนวณโดยการใช้กฎที่ 1 , 2และ3
ตัวอย่างรายละเอียด
ลองพิจารณาอินพุตต่อไปนี้:
// 07 09 08 05 11 12 06 03 10 04 01 02
[ [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 5 (rule #1)
[ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 2 (rule #2), total: 7
[ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 ], // scores 7, total: 14
[ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], // scores 12, total: 26
[ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], // scores 12, total: 38
[ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], // scores 11, total: 49
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores 7, total: 56 -> 25 (rule #3)
[ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] // scores 2, total: 27
การส่งออกที่คาดไว้คือ27
กฏท้าทาย
- คุณสามารถป้อนข้อมูลในรูปแบบที่เหมาะสม แทนที่จะเป็นรายการบูลีนคุณสามารถใช้จำนวนเต็มโดยบิตที่สำคัญที่สุดคือพิน # 7 และบิตที่สำคัญน้อยที่สุดคือพิน # 2
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ]
ในรูปแบบนี้ตัวอย่างข้างต้นจะได้รับการส่งผ่านเป็น - รายการอินพุทอาจมีการโยนโดยไม่มีการพินใด ๆ เลยในกรณีนี้คะแนนจะไม่เปลี่ยนแปลง
- คุณไม่ได้มีอะไรเป็นพิเศษจะทำอย่างไรเมื่อคะแนนถึงตรง 50 คะแนน แต่คุณสามารถสันนิษฐานได้ว่าจะไม่มีการโยนเกิดขึ้นอีกเมื่อเกิดขึ้น
- นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
การใช้รายการจำนวนเต็มเป็นอินพุต:
[ 0 ] --> 0
[ 528 ] --> 2
[ 4095 ] --> 12
[ 64, 0, 3208 ] --> 16
[ 16, 1907, 2048 ] --> 18
[ 2023, 2010, 1, 8 ] --> 29
[ 1726, 128, 35, 3136, 1024 ] --> 34
[ 32, 32, 2924, 2, 256, 16 ] --> 28
[ 64, 64, 2434, 1904, 3251, 32, 256 ] --> 25
[ 3659, 2777, 2211, 3957, 64, 2208, 492, 2815 ] --> 25
[ 2047, 1402, 2, 2599, 4, 1024, 2048, 3266 ] --> 50
[ 256, 2304, 127, 64, 64, 128, 2048, 3072 ] --> 27
[ 16, 8, 128, 1, 2048, 1, 2048, 513, 8, 3206 ] --> 30
คุณสามารถไปที่ลิงก์นี้เพื่อรับกรณีทดสอบเหล่านี้ในรูปแบบบูลีน