กำหนดตารางของตัวอักษรขนาด m x n เมื่อ 1 ≤ m ≤ 25 และ 1 ≤ n ≤ 25 จงเขียนโปรแกรมค้นหาตำแหน่งเริ่มต้นของคำที่ต้องการในตารางดังกล่าว โดยให้ถือว่าตัวอักษรพิมพ์เล็กและตัวอักษรพิมพ์ใหญ่ เช่น A และ a ถือว่าเป็นตัวเดียวกัน การค้นคำสามารถทำได้ทั้งในแนวตั้ง แนวนอน และแนวทแยง ไม่ว่าจะเป็นการอ่านจากซ้ายไปขวา ขวาไปซ้าย บนลงล่าง หรือล่างขึ้นบน รวมทั้งหมดแปดทิศทาง คำที่ค้นได้ต้องมีลำดับตัวอักษรต่อเนื่องเช่นเดียวกันกับคำที่ต้องการค้น
ข้อมูลนำเข้า
ข้อมูลนำเข้าแต่ละชุดประกอบด้วย
1. บรรทัดแรกเป็นจำนวนเต็มบวกสองจำนวนคั่นด้วยเว้นวรรค 1 วรรค จำนวนแรกเป็นจำนวนแถวของตารางตัวอักษร (m) และจำนวนที่สองเป็นจำนวนตัวอักษรทั้งหมดในแถว (n)
2. บรรทัดต่อมาเป็นข้อมูลแต่ละแถวของตารางตัวอักษรทุกแถวตามจำนวนแถวที่กำหนดไว้ โดยตัวอักษรในตารางมีเฉพาะอักษรภาษาอังกฤษตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กคละกันเท่านั้น
3. บรรทัดต่อมาเป็นจำนวนคำทั้งหมดที่ต้องการค้นหา (k) ในตาราง ซึ่งค่า k นี้เป็นจำนวนเต็มบวกจำนวนเดียว และ 1 ≤ k ≤ 100 แต่ละคำมีความยาวตั้งแต่ 1 ถึง 15 ตัวอักษร
4. บรรทัดต่อมาเป็นคำที่ต้องการค้นหา แต่ละบรรทัดมีเพียงคำเดียวและมีจำนวนบรรทัดเท่ากับที่กำหนดไว้ในข้อ 3
5. คำที่ต้องการค้นหาทุกคำเป็นคำที่มีปรากฏในตารางอย่างน้อยหนึ่งครั้ง
ข้อมูลส่งออก
ข้อมูลส่งออกมีจำนวนบรรทัดเท่ากับจำนวนคำที่ต้องการค้นหา เมื่อพบคำที่ต้องการแล้วผลลัพธ์ แต่ละบรรทัดประกอบด้วย หมายเลขบรรทัด และตำแหน่งเริ่มต้นของคำในบรรทัดนั้น โดยคำแต่ละคำแสดงเฉพาะตำแหน่งของตัวอักษรเริ่มต้นเพียงตำแหน่งเดียว ในกรณีที่พบคำที่ต้องการค้นในตารางหลายตำแหน่ง ให้ถือเอาตำแหน่งบนสุดและซ้ายสุดเป็นคำตอบ กำหนดให้แถวแรกที่อยู่ด้านบนสุดของตารางเป็นแถวที่ 0 และกำหนดให้คอลัมน์แรกที่อยู่ด้านซ้ายมือสุดของบรรทัด เป็นคอลัมน์ที่ 0
ที่มา: การแข่งขันคอมพิวเตอร์โอลิมปิก สอวน. ครั้งที่ 2 มหาวิทยาลัยบูรพา ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
8 11
ascDEFGhigg
hTqkComPutk
FayUcompuTm
FcsierMqsrc
bkoArUePeyv
Klcbqwekumk
sreTNIophtb
yUiqlxcnBje
4
Compute
Queue
stack
Pointer | 1 4
1 2
0 1
6 7 |
ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้