หมายเหตุ: ในโพสต์นี้คำว่า 'ตัวละคร' และ 'สี' หมายถึงสิ่งเดียวกัน
ภาพนี้:
สามารถแสดงเป็น
....'''333
.eeee'''3e
..dddd33ee
%%%dd####e
(สีการจับคู่กับตัวอักษร ascii)
ทฤษฎีบทสี่สีกล่าวว่า "ให้เครื่องบินแยกออกเป็นส่วนที่ต่อเนื่องกันสร้างร่างที่เรียกว่าแผนที่ไม่จำเป็นต้องใช้สีเกินสี่สีในการกำหนดขอบเขตของแผนที่เพื่อไม่ให้มีสองบริเวณที่อยู่ติดกันมีสีเดียวกัน เรียกว่าภูมิภาคที่อยู่ติดกันหากพวกเขาแบ่งปันขอบเขตทั่วไปที่ไม่ได้เป็นมุมที่มุมเป็นจุดที่ใช้ร่วมกันโดยสามหรือมากกว่าภูมิภาค - Wikipedia ( ลิงก์ )
ซึ่งหมายความว่าควรเป็นไปได้ที่จะระบายสีแผนที่โดยใช้สี่สีเพื่อไม่ให้สองส่วนที่แบ่งปันขอบแบ่งปันสี
อัลกอริทึมในการระบายสีแผนที่โดยใช้เพียงสี่สีนั้นมีความซับซ้อนดังนั้นในความท้าทายนี้โปรแกรมของคุณจำเป็นต้องระบายสีแผนที่โดยใช้สีห้าสีหรือน้อยกว่า
แผนที่ก่อนหน้านี้เปลี่ยนสีอาจมีลักษณะเช่นนี้:
ซึ่งสามารถแสดงเป็น
....'''333
.eeee'''3e
..dddd33ee
333dd....e
หรือเทียบเท่า
@@@@$$$!!!
@^^^^$$$!^
@@<<<<!!^^
!!!<<@@@@^
ท้าทาย:
เมื่อได้รับ "แผนที่" ที่ทำจากอักขระ ASCII (โดยที่อักขระแต่ละตัวแทนสีที่แตกต่างกัน) "เปลี่ยนสี" แผนที่ (แสดงถึงแผนที่โดยใช้อักขระ ASCII ที่แตกต่างกัน) เพื่อให้ใช้เพียงห้าสีหรือน้อยกว่าเท่านั้น
ตัวอย่าง:
การป้อนข้อมูล:
%%%%%%%%%%%%##########$$$$$$$$%%
*****%%%####!!!!!!!%%%%%%%%%#^^^
(((((((***>>>>??????????%%%%%%%%
&&&&&&&&$$$$$$$^^^^^^^))@@@%%%%%
^^^^^^%%%%%%%%%%%%##############
เอาต์พุตที่เป็นไปได้:
11111111111122222222223333333311
44444111222255555551111111112444
22222224441111444444444411111111
55555555222222255555553355511111
22222211111111111122222222222222
ชี้แจง:
- แผนที่ที่ป้อนจะใช้อักขระอย่างน้อยหกตัวเสมอ
- คุณสามารถใช้อักขระต่าง ๆ ห้าตัวในผลลัพธ์
- คุณสามารถใช้อักขระน้อยกว่าห้าตัวในเอาต์พุต
- คุณสามารถรับอินพุตในรูปแบบที่เหมาะสม (รวมถึงอาร์เรย์ของอาร์เรย์หรืออาร์เรย์ของสตริง)
- นี่คือ code-golf ดังนั้นคำตอบที่สั้นที่สุดชนะ


121เป็น 3 ภูมิภาคที่แยกจากกันเพื่อหลีกเลี่ยงปัญหานี้แม้ว่าตัวอย่างจะมีความหมายเป็นอย่างอื่นหรือเราควรปฏิบัติกับมันเป็น 2 และสมมติว่าไม่มีแผนที่ใดที่จะให้มากกว่า 5 สี?