8
ตำแหน่งเรือประจัญบานขี้เกียจ
ลองนึกภาพสถานการณ์ต่อไปนี้: คุณกำลังเล่นเรือรบกับเพื่อน แต่ตัดสินใจที่จะโกง แทนที่จะย้ายเรือหลังจากที่เขายิงจุดที่เรือของคุณเคยเป็นคุณตัดสินใจที่จะไม่วางเรือใด ๆ เลย คุณบอกเขาว่าทุกช็อตของเขาพลาดไปจนกว่าจะไม่สามารถวางเรือในลักษณะนี้ได้ คุณต้องเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบที่ใช้เวลา 3 ข้อโต้แย้ง: ขนาดฟิลด์รายการจำนวนขนาดของเรือและรายการของภาพ สนามรบ หนึ่งในพารามิเตอร์ที่กำหนดคือขนาดกระดาน สนามรบเป็นรูปสี่เหลี่ยมจัตุรัสของเซลล์และพารามิเตอร์ที่กำหนดเป็นเพียงด้านเดียวของจัตุรัส ตัวอย่างเช่นต่อไปนี้เป็นบอร์ดขนาด 5 พิกัดบนฟิลด์ถูกระบุเป็นสตริง 2 องค์ประกอบ: ตัวอักษรตามด้วยตัวเลข คุณสามารถพึ่งพาตัวอักษรในบางกรณี ตัวอักษรระบุคอลัมน์ตัวเลขระบุแถวของเซลล์ (1 ดัชนี) "D2"ยกตัวอย่างเช่นในภาพข้างบนเซลล์ที่ไฮไลต์คือการแสดงโดย เนื่องจากมีเพียง 26 ตัวอักษรสนามจึงไม่สามารถมีขนาดใหญ่กว่า 26x26 เรือ เรือเป็นเส้นตรงที่มี 1 บล็อกขึ้นไป จำนวนเรือถูกระบุในรายการโดยที่องค์ประกอบแรกคือจำนวนเรือ 1 เซลล์สอง - จากเรือ 2 เซลล์และอื่น ๆ ตัวอย่างเช่นรายการ[4,1,2,0,1]จะสร้างชุดต่อไปนี้: เมื่อวางไว้ในสนามรบเรือไม่สามารถตัดกันหรือแม้แต่แตะต้องกัน ไม่แม้แต่กับมุม อย่างไรก็ตามพวกเขาสามารถสัมผัสขอบของสนาม ด้านล่างคุณสามารถดูตัวอย่างของการจัดส่งที่ถูกต้อง: คุณสามารถสันนิษฐานได้ว่าสำหรับเรือที่ได้รับนั้นจะมีตำแหน่งบนกระดานเปล่าตามขนาดที่กำหนด เอาท์พุต หากตำแหน่งของเรือดังกล่าวมีอยู่คุณจะต้องแสดงผลลัพธ์ใด ๆ …