eolymp
bolt
Try our new interface for solving problems
Problems

Цивилизация

Цивилизация

Карта мира в компьютерной игре “Цивилизация” версии 1 представляет собой прямоугольник, разбитый на квадратики. Каждый квадратик может иметь один из нескольких возможных рельефов, для простоты ограничимся тремя видами рельефов - поле, лес и вода. Поселенец перемещается по карте, при этом на перемещение в клетку, занятую полем, необходима одна единица времени, на перемещение в лес - две единицы времени, а перемещаться в клетку с водой нельзя. У вас есть один поселенец, вы определили место, где нужно построить город, чтобы как можно скорее завладеть всем миром. Найдите маршрут переселенца, приводящий его в место строительства города, требующий минимального времени. На каждом ходе переселенец может перемещаться в клетку, имеющую общую сторону с той клеткой, где он сейчас находится. \InputFile Во входном файле записаны два натуральных числа \textbf{N} и \textbf{M}, не превосходящих \textbf{1000} - размеры карты мира (\textbf{N} - число строк в карте, \textbf{M} - число столбцов). Затем заданы координаты начального положения поселенца \textbf{x} и \textbf{y}, где \textbf{x}- номер строки, \textbf{y} - номер столбца на карте (\textbf{1} ≤ \textbf{x} ≤ \textbf{N}, \textbf{1} ≤ \textbf{y} ≤ \textbf{M}), строки нумеруются сверху вниз, столбцы - слева направо. Затем аналогично задаются координаты клетки, куда необходимо привести поселенца. Далее идет описание карты мира в виде \textbf{N} строк, каждая из которых содержит \textbf{M} символов. Каждый символ может быть либо "\textbf{.}" (точка), обозначающим поле, либо "\textbf{W}", обозначающим лес, либо "\textbf{#}", обозначающим воду. Гарантируется, что начальная и конечная клетки пути переселенца не являются водой. \OutputFile В первой строке выходного файла выведите количество единиц времени, необходимое для перемещения поселенца (перемещение в клетку с полем занимает \textbf{1} единицу времени, перемещение в клетку с лесом - \textbf{2}единицы времени). Во второй строке выходного файла выведите последовательность символов, задающих маршрут переселенца. Каждый символ должен быть одним из четырех следующих: "\textbf{N}" (движение вверх), "\textbf{E}" (движение вправо), "\textbf{S}" (движение вниз), "\textbf{W}" (движение влево). Если таких маршрутов несколько, выведите любой из них. Если дойти из начальной клетки в конечную невозможно, выведите число \textbf{-1}.
Time limit 1 second
Memory limit 64 MiB
Input example #1
4 8 1 1 4 8
....WWWW
.######.
.#..W...
...WWWW.
Output example #1
13
SSSEENEEEEES