10832. Lines(2)


Відправити розв'язок

Бали: 100
Time limit: 1.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

У таблиці з \(𝑁\) рядків та \(𝑁\) стовпців деякі клітини зайняті кульками, інші вільні. Вибрано кульку, яку потрібно перемістити, і місце, куди її потрібно перемістити. Вибрана кулька за один крок переміщається у сусідню по горизонталі або вертикалі вільну клітину. Потрібно з'ясувати, чи можливо перемістити кульку з початкової клітини в задану, і, якщо можливо, знайти шлях з найменшої кількості кроків.

Формат вхідних даних

У першому рядку знаходиться число \(𝑁\) , у наступних \(𝑁\) рядках - по \(𝑁\) символів. Символом точки позначена вільна клітина, латинській заголовній 𝑂 - кулька, @ - вихідне положення кульки, яка повинна рухатися, латинській заголовній 𝑋 - кінцеве положення кульки. \(2 \le 𝑁 \le 250\).

Формат вихідних даних

У першому рядку виводиться \(𝑌\) , якщо рух можливий, або \(𝑁\) , якщо ні. Якщо рух можливий, далі іде \(𝑁\) рядків по \(𝑁\) символів - як і на вході, але 𝑋 , а також всі точки по дорозі замінюються плюсами - +.

Приклад вхідних даних

2
@.
.X

Приклад вихідних даних

Y
@.
++

Приклад вхідних даних

2
@O
OX

Приклад вихідних даних

N

Коментарі

Ще немає коментарів.