งานของคุณคือให้ตารางสี่เหลี่ยมของตัวเลข ( 0-9) เอาท์พุทวิธีหนึ่งที่สามารถจัดกลุ่มตัวเลขดังกล่าว:
- แต่ละหลักเป็นส่วนหนึ่งของกลุ่มหนึ่งกลุ่ม
- ทุกกลุ่มมีจำนวนหลักเท่ากัน
- กลุ่มทั้งหมดถูกล้อมรอบด้วยรูปร่างคล้ายรูปหลายเหลี่ยมหนึ่งอัน (ซึ่งหมายความว่าทุกหลักในกลุ่มอยู่ถัดจาก [ซ้าย, ขวา, ขึ้น, ลง] อย่างน้อยหนึ่งตัวเลขอื่นในกลุ่มเดียวกันเว้นแต่แต่ละกลุ่มจะมี 1 องค์ประกอบ)
- ทุกกลุ่มมีผลรวมเท่ากัน
กริดอินพุตจะเป็นสี่เหลี่ยมจัตุรัสเสมอ: คุณสามารถเลือกวิธีป้อนข้อมูลใดก็ได้ที่คุณต้องการ (รวมถึงการจัดหาอาร์กิวเมนต์ให้กับฟังก์ชันหรือเมธอด) นอกจากนี้อินพุตจะระบุจำนวนกลุ่มที่โปรแกรมของคุณควรจัดกลุ่มตัวเลขให้เป็น
อินพุตตัวอย่าง:
stringOfDigits numberOfGroupsสมมติว่ารูปแบบการป้อนข้อมูลของคุณ
ตัวอย่างอินพุตจะเป็น:
156790809 3
ซึ่งจะแปลเป็น (กริดของsqrt(9) * sqrt(9))
1 5 6
7 9 0
8 0 9
ซึ่งคุณจะต้องแบ่งออกเป็น 3 กลุ่มแต่ละกลุ่มควรมี9 / 3 = 3องค์ประกอบที่มีผลรวมเดียวกัน
เอาท์พุท: เอาท์พุทควรเป็นสตริงของตัวเลขโดยมีเว้นวรรคและบรรทัดใหม่สำหรับการจัดรูปแบบโดยแต่ละหลักตามด้วยตัวอักษรที่a-zระบุกลุ่มของมัน ควรมีnumberOfTotalDigits / numberOfGroupsองค์ประกอบที่แน่นอนในแต่ละกลุ่ม คุณจะไม่ต้องแบ่งบางสิ่งออกเป็นมากกว่า 26 กลุ่ม
ตัวอย่างผลลัพธ์:
1a 5a 6b
7c 9a 0b
8c 0c 9b
โปรดทราบว่าการแทนที่ทั้งหมดaด้วยbs และbs ด้วยas นั้นใช้ได้อย่างเท่าเทียมกัน ตราบใดที่แต่ละกลุ่มแสดงด้วยตัวอักษรที่แตกต่างผลลัพธ์ก็จะถูกต้อง
นอกจากนี้ฉันคาดว่าโปรแกรมส่วนใหญ่จะแสดงผลบางอย่างตามบรรทัดของเรื่องนี้เนื่องจากการขึ้นบรรทัดใหม่ / ช่องว่างเป็นตัวเลือก:
1a5a6b7c9a0b8c0c9b
ในกรณีนี้การเพิ่มตัวเลขทั้งหมดของกลุ่มa, bหรือcทำให้ 15. นอกจากนี้ทุกกลุ่มมีความผูกพันตามรูปหลายเหลี่ยมบาง
เอาต์พุตไม่ถูกต้อง:
1a 5a 6b
7c 9a 0c
8c 0b 9b
เนื่องจากกลุ่มไม่รวมรูปหลายเหลี่ยม (โดยเฉพาะกลุ่มที่6bแยกได้และ0cโดดเดี่ยว)
1a 5a 6b
7c 9a 0b
8c 0b 9b
เพราะกลุ่มbมี 4 องค์ประกอบในขณะที่cมีเพียง 2
เป็นต้น
หากไม่มีวิธีแก้ปัญหาที่ถูกต้องโปรแกรมของคุณอาจทำอะไรก็ได้ (เช่นหยุดทำงานผิดพลาดทำงานตลอดไป) แต่ถ้าโปรแกรมของคุณพิมพ์Noneเมื่อไม่มีวิธีแก้ไขที่ถูกต้อง-15ให้คะแนนของคุณ
หากมีมากกว่าหนึ่งวิธีคุณจะต้องพิมพ์วิธีเดียว แต่-20ถ้าโปรแกรมของคุณพิมพ์ทั้งหมดโดยคั่นด้วยตัวคั่นบางตัว
นี่คือรหัสกอล์ฟซึ่งเป็นรหัสที่สั้นที่สุด (พร้อมโบนัส) ชนะ!
156790889 3ดูเหมือนว่าควรจะเป็น156790809 3
6b0b