มันได้รับการพิสูจน์แล้วว่าต่อไปนี้ 13 ตารางวังกระเบื้องเสมอกระเบื้องเครื่องบินaperiodically ซึ่งหมายความว่าเมื่อสี่เหลี่ยมถูกจัดเรียงในตารางที่มีด้านข้างทั้งหมดมีสีเดียวกันการแปลของรูปแบบจะไม่ตรงกับตัวเอง
เราจะเป็นตัวแทนของแต่ละกระเบื้อง textually โดยตาราง 3 × 3 ที่เต็มไปด้วยช่องว่างที่ศูนย์และมุมและตัวเลข 1 ถึง 5 แทนสีแดง, เขียว, น้ำเงิน, เหลือง, เทา, ที่ขอบ:
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
เป้าหมาย
งานของคุณคือการเขียนโปรแกรมที่ใช้ในความกว้างและความสูงและส่งออกตารางกระเบื้องวังที่ถูกต้องด้วยขนาดเหล่านั้น การปูกระเบื้องที่ถูกต้องคือการที่ขอบกระเบื้องที่อยู่ติดกันทั้งหมดมีสีเดียวกัน (หรือตัวเลข) โปรแกรมที่เล็กที่สุดเป็นไบต์ชนะ
อินพุตของคุณควรมาจาก stdin หรืออาร์กิวเมนต์บรรทัดรับคำสั่งและเอาต์พุตควรไปที่ stdout >>> wangtiler 3 2
รูปแบบการป้อนข้อมูลที่แน่นอนสามารถเป็นอะไรก็ได้ที่เห็นได้ชัดพอสมควรเช่น ความกว้างและความสูงเป็นจำนวนเต็มบวกเสมอ
ตัวอย่าง (width = 3, height = 2)
โปรดสังเกตว่าเมื่อเราวางเลย์เอาต์แบบเรียงต่อกันขอบที่อยู่ใกล้เคียงจะต้องมีตัวเลขสองหลักที่ซ้ำซ้อน:
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(นี่ไม่ใช่รูปแบบเอาต์พุตที่เหมาะสม)
เราสามารถบีบอัดเหล่านี้ในแนวนอนและแนวตั้งเพื่อรับ:
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
รูปแบบการบีบอัดนี้เป็นรูปแบบผลลัพธ์ที่เหมาะสมที่คุณต้องใช้ บรรทัดที่เป็นเลขคี่จะต้องมีช่องว่างต่อท้าย
โบนัสกราฟิก
แทนที่จะมีเอาท์พุทที่เป็นข้อความใด ๆ โปรแกรมของคุณอาจส่งออกภาพของตารางกระเบื้อง กระเบื้องกราฟิกต้องประกอบด้วยรูปสามเหลี่ยม 45-45-90 สี่รูปแบบที่จัดเรียงเป็นสี่เหลี่ยมและใช้สีที่แตกต่างได้ห้าสีอย่างเช่นกระเบื้องด้านบน ไม่จำเป็นต้องใช้เส้นขอบสีดำ ไทล์กราฟิกต้องมีขนาดอย่างน้อย 32 × 32 พิกเซล ไม่มีการใช้ "การบีบอัด"
ตัวอย่างภาพโบนัส: (กริดเดียวกันกับตัวอย่างด้านบน)
โบนัสมีมูลค่าลบ 150 ไบต์
หมายเหตุ
- คุณต้องใช้ชุดไพ่ 13 ใบนี้
- กระเบื้องอาจไม่หมุน
- ไทล์อาจปรากฏจำนวนครั้งใด ๆ (รวมถึงไม่มีเลย)
- คุณอาจสมมติว่าการเรียงต่อกันที่ถูกต้องกับมิติข้อมูลใด ๆ เป็นไปได้