eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Цивілізація

Цивілізація

Карта світу у комп'ютерній грі “Цивілізація” версії 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}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4 8 1 1 4 8
....WWWW
.######.
.#..W...
...WWWW.
Вихідні дані #1
13
SSSEENEEEEES