ความท้าทายนี้ขึ้นอยู่กับเกมLayerz
ให้ไว้ใน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชั่นอาร์เรย์รูปสี่เหลี่ยมผืนผ้า 2 มิติของเซลล์ที่แต่ละเซลล์มีช่องว่าง (คุณสามารถเลือกใช้ 0s แทนช่องว่างโดยไม่มีการลงโทษ), 1, 2, 3, 3 หรือ 4 ; หาวิธีที่จะแบ่งออกเป็นภูมิภาคที่ถูกต้อง (ตามที่กำหนดไว้ด้านล่าง) เช่นนั้นเซลล์ที่ไม่ว่างแต่ละเซลล์จะถูกบรรจุโดยหนึ่งภูมิภาค จากนั้นเอาต์พุตโซลูชันที่พบในรูปแบบที่สมเหตุสมผล หากไม่มีวิธีแก้ปัญหาให้หยุดโดยไม่สร้างเอาต์พุตหรือเอาต์พุตเป็นค่าเท็จเพียงครั้งเดียวแล้วหยุด
สิ่งต่อไปนี้ถือว่าเป็นภูมิภาคที่ถูกต้อง:
- เซลล์เดียวที่มี 1
- เซลล์ที่มี 2 และหนึ่งในเพื่อนบ้าน orthogonal ที่ไม่ว่างเปล่า
- เซลล์ที่มี 3 และสองของเพื่อนบ้าน orthogonal ไม่ว่าง
- เซลล์ที่มี 4 และสามของเพื่อนบ้าน orthogonal ไม่ว่าง
นี่คือcode-golfดังนั้นคำตอบที่ถูกต้องสั้นที่สุดเป็นไบต์ชนะ
กรณีทดสอบบางส่วน:
1. คนที่ค่อนข้างเล็กน้อย:
และนี่คือวิธีแก้ปัญหาโดยแต่ละภูมิภาคมีสีแตกต่างกัน:
2. อันที่น่าสนใจมากกว่า
อันนี้มีทางออกมากกว่าหนึ่งอัน แต่นี่คือหนึ่งในนั้น:
3. ตัวที่เล็กกว่าที่มีช่องว่างซึ่งไม่มีวิธีแก้ปัญหาใด ๆ (ขึ้นอยู่กับว่าคุณใช้หนึ่งใน twos เพื่อ "จับ" สามหรือสามเพื่อใช้สอง twos คุณเหลือด้วย คู่ที่ไม่อยู่ติดกัน [และจึงไม่สามารถจัดกลุ่มได้] สองครั้งหรือสองตัวเดียว):
เนื่องจากกริดนี้ไม่มีวิธีแก้ปัญหาโปรแกรมของคุณควรหยุดทำงานโดยไม่สร้างเอาต์พุตใด ๆ เมื่อให้กริดนี้
4. อันนี้ (ด้วย 2 อันดับแรกที่เลื่อนไปหนึ่งเซลล์ทางซ้าย) จะมีวิธีแก้ไขดังนี้:
วิธีการแก้:
(ขวาล่าง 2 ใช้เพื่อ "จับ" 3)
5. เพราะเราต้องการกรณีทดสอบที่มีสี่:
ทางออกหนึ่ง:
4
s หากไฟล์เหล่านั้นเป็นอินพุตที่ถูกต้อง