10832. Lines(2)
У таблиці з \(𝑁\) рядків та \(𝑁\) стовпців деякі клітини зайняті кульками, інші вільні. Вибрано кульку, яку потрібно перемістити, і місце, куди її потрібно перемістити. Вибрана кулька за один крок переміщається у сусідню по горизонталі або вертикалі вільну клітину. Потрібно з'ясувати, чи можливо перемістити кульку з початкової клітини в задану, і, якщо можливо, знайти шлях з найменшої кількості кроків.
Формат вхідних даних
У першому рядку знаходиться число \(𝑁\) , у наступних \(𝑁\) рядках - по \(𝑁\) символів. Символом точки позначена вільна клітина, латинській заголовній 𝑂 - кулька, @ - вихідне положення кульки, яка повинна рухатися, латинській заголовній 𝑋 - кінцеве положення кульки. \(2 \le 𝑁 \le 250\).
Формат вихідних даних
У першому рядку виводиться \(𝑌\) , якщо рух можливий, або \(𝑁\) , якщо ні. Якщо рух можливий, далі іде \(𝑁\) рядків по \(𝑁\) символів - як і на вході, але 𝑋 , а також всі точки по дорозі замінюються плюсами - +.
Приклад вхідних даних
2
@.
.X
Приклад вихідних даних
Y
@.
++
Приклад вхідних даних
2
@O
OX
Приклад вихідних даних
N
Коментарі