ค้นหาซานต้าและกวางเรนเดียร์ของเขาในฉากที่แออัด
อินพุต
อินพุตจะอยู่ใน STDIN และจะเป็นจำนวนตัวแปรของบรรทัดของตัวละครที่เท่ากัน แต่ตัวแปรความยาว ถ้าซานต้า (แสดงโดยตัวละครS
) อยู่ในฉากกระสอบของขวัญของเขา (แสดงโดยตัวละครP
) จะอยู่ในตำแหน่งใดตำแหน่งหนึ่งที่อยู่ติดกับเขา (แนวนอนแนวตั้งหรือแนวทแยงมุม) กวางเรนเดียร์ของเขา (ซึ่งแสดงโดยตัวละครแต่ละตัวR
) จะอยู่ในพื้นที่ 5x5 รอบตัวเขา หากS
ปรากฏในฉากที่ไม่มีถุงของขวัญหรือไม่มีกวางเรนเดียร์อย่างน้อย 4 ตัวแสดงว่าไม่ใช่ซานต้า
เอาท์พุต
ฉากถูกลบล้างของความสับสน (ทั้งหมดที่ไม่ใช่ซานต้า, ไม่ใช่ของขวัญ, ตัวละครที่ไม่ใช่กวางเรนเดียร์แทนที่ด้วยช่องว่าง) แสดงให้เห็นซานต้า, กระสอบของของขวัญและกวางเรนเดียร์ของเขา - ตัวละครอื่น ๆ ทั้งหมดควรแทนที่ด้วยช่องว่าง ถ้าซานต้าและกวางเรนเดียร์ของเขาไม่ได้อยู่ในฉากเอาท์พุทมันไม่เปลี่ยนแปลง มีการรับประกันว่าจะมีทางออกเดียวเท่านั้นดังนั้นจะไม่มีซานต้าที่ถูกต้องมากกว่าหนึ่งรายการและเขาจะไม่ถือของขวัญมากกว่าหนึ่งถุง
ตัวอย่าง
ในตัวอย่างเหล่านี้ฉันแค่ใช้*
ตัวอักษรที่จะทำให้มันง่ายที่จะเห็นS
, P
และR
ตัวอักษร แต่โปรแกรมของคุณควรจะสามารถที่จะจัดการกับอักขระ ASCII ใด ๆ จาก!
ไป`
(33-96) ฉันไม่ได้ใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เพื่อหลีกเลี่ยงความสับสน
การป้อนข้อมูล:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
ผลลัพธ์: (ละเว้นจุดพวกเขาจะบังคับให้หน้าแสดงบรรทัดว่าง)
.
.
.
R
P
S
R
R R
.
.
.
.
อินพุต: (กวางเรนเดียร์ไม่เพียงพอ)
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
เอาท์พุท:
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
อินพุต: (ไม่มีถุงของขวัญ)
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
เอาท์พุท:
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
อินพุต: (นำเสนอไม่ใกล้พอ)
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
เอาท์พุท:
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
อินพุต: (กวางเรนเดียร์ตัวใดตัวหนึ่งไม่อยู่ในสี่เหลี่ยม 5x5 รอบซานต้า)
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
เอาท์พุท:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
สคริปต์ทดสอบ
ในบางคำถามที่ผ่านมาของฉันฉันได้พบเห็นสคริปต์ทดสอบอีกครั้ง แต่เดิมสร้างโดยJoeyและVenteroเพื่อให้กรณีทดสอบสำหรับคำถามนี้:
การใช้งาน: ./test [your program and its arguments]
รุ่นข้อความธรรมดาของการทดสอบสำหรับการอ้างอิง: ข้อความธรรมดา
รางวัล
แต่ละรายการที่ฉันสามารถตรวจสอบว่าตรงตามข้อกำหนดผ่านการทดสอบและเห็นได้ชัดว่ามีความพยายามในการเล่นกอล์ฟบางอย่างจะได้รับ upvote จากฉัน (ดังนั้นโปรดให้คำแนะนำการใช้งานพร้อมคำตอบของคุณ) ทางออกที่สั้นที่สุดภายในวันที่ 31 ธันวาคม 2556 จะได้รับการยอมรับในฐานะผู้ชนะ