สถิติเวลาน้อยที่สุดสถิติทั้งหมด
ในตารางเกมขนาด N แถว M คอลัมน์ โดยในตารางมีสิ่งกีดขวางวางเอาไว้ ด้านบนมีก้อนอิฐหลายๆ ก้อนที่กำลังจะหล่นลงมา ตัวอย่างของเกมดูได้ในตัวอย่างข้อมูลนำเข้า เป็นตารางขนาด (N=8)x(M=5) ซึ่งสถานะเริ่มต้นของตารางเกมแสดงในตัวอย่างข้อมูลน้ำเข้า และเมื่อเกมได้ประมวลผลแล้ว ซึ่งก็คืออิฐตกจากด้านบนลงสู่ด้านล่าง จะเห็นว่าอิฐจะมีการตกค้างที่สิ่งกีดขวาง และผลลัพธ์หลังจากประมวลเสร็จสิ้นดังแสดงในตัวอย่างข้อมูลส่งออก
จงเขียนโปรแกรมเพื่อรับตารางเกมเริ่มต้นและจำนวนอิฐที่จะตกลงมาในแต่ละคอลัมน์ ให้ประมวลผลก้อนอิฐทุกก้อน โดยมีเงื่อนไขดังนี้
(1) ถ้าก้อนอิฐตกลงมาแล้วพบสิ่งกีดขวางที่อยู่ในตารางเกม ก็จะค้างอยู่ ณ ตำแหน่งที่พบสิ่งกีดขวาง
(2) ถ้าก้อนอิฐไม่พบสิ่งกีดขวางจะตกลงมาอยู่แถวล่างสุด เมื่อประมวลผลครบทุกก้อนอิฐให้แสดงผลสถานะของตารางเกม
ข้อมูลนำเข้า
รับข้อมูลจากแฟ้มข้อมูลนำเข้า
บรรทัดแรก จะระบุจำนวนเต็มสองจำนวน N และ M โดยที่ 1 < N < 20 และ 1 < M < 20
N บรรทัดถัดไป จะเป็นการระบุตารางเกม โดยในบรรทัดที่ 1 + I จะเป็นข้อมูลของตารางเกมแถวที่ I ซึ่งจะระบุเป็นสายอักขระความยาว M ตัวอักขระ ที่มีรูปแบบดังนี้ (1) เครื่องหมายจุด ‘.’ แทนช่องที่ว่างในตารางเกม และ (2) ตัวอักษร ‘O’ ((ตัวพิมพ์ใหญ่โอ) แทนช่องที่มีสิ่งกีดขวางอยู่
บรรทัดสุดท้าย ประกอบด้วยตัวเลข M ตัวคือ M1,M2,M3,… แต่ละตัวคั่นด้วยช่องว่างหนึ่งช่อง ตัวเลข คือจำนวนก้อนอิฐที่จะตกลงมาในคอลัมน์ที่ j โดยที่ 0≤aj≤20
ข้อมูลส่งออก
ให้เขียนผลลัพธ์ออกทางแฟ้ม โดยให้ระบุตารางเกมผลลัพธ์ในรูปแบบเดียวกับในแฟ้มข้อมูลนำเข้า ให้ใช้เครื่องหมาย ‘#’ แทนก้อนอิฐอยู่ในตาราง
ที่มา: การแข่งขันคอมพิวเตอร์โอลิมปิก สอวน. ครั้งที่ 1 มหาวิทยาลัยเกษตรศาสตร์ ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
8 5
.....
.....
.OO..
.....
.O...
...O.
.....
.....
1 1 3 2 0 | ..#..
.##..
.OO..
...#.
.O.#.
...O.
.....
#.... |
ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้
กำลังออนไลน์: 18 ผู้เยี่ยมชมและ 0 สมาชิก (1 บอท)