nonogramเป็นสองมิติปริศนาตรรกะที่มีลักษณะบางอย่างเช่นนี้ (ภาพหน้าจอจากเกมPixeloเกม nonogram ที่ชื่นชอบ):

เป้าหมายของเกมคือการค้นหาว่าภาพเหล่านั้นเข้ารหัสอะไร กฎนั้นง่าย: ตัวเลขในคอลัมน์หรือแถวหมายความว่าอยู่ที่ไหนสักแห่งในคอลัมน์หรือแถวนั้นซึ่งมีหลายช่องในกล่อง ตัวอย่างเช่นแถวด้านล่างในรูปภาพด้านบนจะต้องไม่มีกล่องที่กรอกข้อมูลในขณะที่แถวด้านบนนั้นจะต้องมีกล่องทั้งหมดอยู่ในนั้น แถวที่สามจากด้านล่างมีช่องที่เต็มไป 8 ช่องและแถวทั้งหมดจะอยู่ในแถว
ตัวเลขสองตัวหรือมากกว่าสำหรับคอลัมน์หรือแถวเดียวกันหมายความว่ามีหลายช่อง "วิ่ง" ของกล่องที่เติมเต็มโดยมีช่องว่างอย่างน้อยหนึ่งช่องว่างด้วยความยาวเหล่านั้น คำสั่งซื้อจะถูกเก็บไว้ ตัวอย่างเช่นมีสามช่องที่กรอกไว้ในคอลัมน์ด้านขวาของภาพด้านบนอย่างน้อยหนึ่งช่องว่างด้านล่างแล้วมีอีกหนึ่งช่อง
นี่คือปริศนาเดียวกันที่เกือบจะเสร็จสมบูรณ์:

(Xs ไม่สำคัญพวกเขาเป็นเพียงคำใบ้ที่ผู้เล่นออกเพื่อให้ตัวเองพูดว่า "สี่เหลี่ยมจัตุรัสนี้ไม่ได้กรอกอย่างแน่นอน" ให้คิดธงใน Minesweeper พวกเขาไม่มีความหมายของกฎ)
หวังว่าคุณจะเห็นได้ว่าตัวอย่างเช่นคอลัมน์กลางพร้อมคำใบ้ที่บอกว่า "2 2" มีการเติมเต็มความยาว 2 กล่องสองกล่อง
ภารกิจของคุณคุณควรเลือกที่จะยอมรับมันคือการเขียนโปรแกรมหรือฟังก์ชั่นที่จะสร้างตัวต่อแบบนี้ คุณจะได้รับขนาดของกระดานเป็นจำนวนเต็มเดียว (5 <= n <= 50) บน stdin หรือเป็นอาร์กิวเมนต์ (ไม่มีเหตุผลว่าทำไมปริศนา nonogram จะต้องเป็นรูปสี่เหลี่ยม แต่สำหรับความท้าทายนี้มันจะเป็น) หลังจากนั้นคุณจะได้รับชุดของ 1 และ 0 เป็นตัวแทนของสี่เหลี่ยมที่เติมและไม่ได้บรรจุในรูปภาพตามลำดับ n แรกของพวกเขาคือแถวบนสุดจากนั้นแถวถัดไป ฯลฯ คุณจะกลับมาหรือพิมพ์เพื่อ stdout คณะกรรมการของเซลล์ 2 * 1 (เพราะพวกเขาดูดีขึ้นและมันจะทำให้คุณมีที่ว่างสำหรับคำใบ้ 2 หลักสำหรับคอลัมน์ ) ทั้งหมดนั้นว่างเปล่าพร้อมด้วยคำแนะนำที่สอดคล้องกับข้อมูลอินพุต
รูปแบบผลลัพธ์

ตัวอย่าง
การป้อนข้อมูล:
./nonogram <<< '5 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0'
OR
n(5,[0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,1,0])
ภาพ:

เอาท์พุท:
1
2 1 2
3 2 1 2 3
+----------
3|
2 2|
1 1 1|
2 2|
3|
การป้อนข้อมูล:
./nonogram <<< '15 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1'
ภาพ:

เอาท์พุท:
1 1
1 1 3 3 5 5 3 3 1
7 2 3 2 4 2 3 210 2 3 0 4 215
+------------------------------
2|
1|
1|
1|
1|
1 1|
3 3 1 1|
1 5 1 1|
3 5 3|
1 5 1|
1 3 1|
1 1 1 1 1|
1 1 1 1 1 1 1 1|
11 3|
11 3|
ชี้แจง
- ผลลัพธ์ของคุณไม่จำเป็นต้องเป็นปริศนาที่แก้ไขได้ ไม่ใช่ nonograms ทั้งหมดที่สามารถแก้ไขได้ แต่นั่นไม่ใช่ความกังวลของคุณ เพียงแค่ส่งคำแนะนำที่สอดคล้องกับอินพุตไม่ว่าจะเป็นตัวต่อที่ดีหรือไม่ก็ตาม
- อนุญาตให้ใช้โปรแกรมที่รับอาร์กิวเมนต์บนบรรทัดคำสั่ง นี่เป็นประเภทที่กล่าวข้างต้น แต่เป็นไปได้ที่จะเข้าใจผิด นั่นคือสิ่งที่ชี้แจงสำหรับ
- การพิมพ์
0แถวหรือคอลัมน์ที่ไม่ได้กรอกข้อมูลในกล่องเป็นสิ่งจำเป็น ฉันไม่ได้พูดสิ่งนี้ด้วยคำใด ๆ แต่มันอยู่ในข้อมูลตัวอย่าง
5<=n<=50เป็นข้อมูลจำเพาะดังนั้นจึงไม่สามารถมีตัวเลข 3 หลักได้
-ควร?