АВТ
Язык:

Дистанционный практикум по программированию

Задачи Online статус Соревнования
Новости Справка СДО
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

1162. Разрушенный лабиринт

Ограничение времени: 1 сек.
Ограничение памяти:65536 КБайт
Баллы:100
Статистика Послать на проверку Задачу добавил debug

Вам дана карта древнего разрушенного лабиринта. Для удобства она разбита на клетки, каждая клетка содержит один из следующих символов:

·        символом «.» обозначена пустая область;

·        символом «#» обозначена стена лабиринта;

·        символом «W» (заглавная латинская буква) обозначено место обвала потолка лабиринта;

·        символом «@» обозначена точка начала движения;

·        символом «$» обозначена точка конца движения.

Требуется добраться из точки начала движения в точку конца движения за минимальное число шагов, или сообщить, что такого пути не существует. Разрешается переходить из одной ячейки в другую, если у них есть общая сторона. Запрещается пересекать границы лабиринта.

Если на пути встречается завал — можно разобрать его и продолжить путь дальше. Если существует несколько кратчайших путей от точки начала до точки конца – то нужно выбрать такой путь, при котором количество завалов, которые придется разобрать, будет минимальным.

В первой строке входных данных через пробел записаны два целых числа W (4 ≤ W ≤ 50) — количество строк карты и H (4 ≤ H ≤ 50) — количество столбцов карты.

В следующих W строках записано по H символов, описывающих карту лабиринта. Гарантируется, что на карте есть точка начала движения и точка конца движения.

В первой строке выведите «YES» (без кавычек), если существует путь по лабиринту от точки начала движения до точки конца движения. Во второй строке через пробел выведите два числа — минимальную длину пути между точкой начала движения и точкой конца движения, затем минимальное количество обвалов, которое нужно на этом пути разобрать.

Если добраться из точки начала движения в точку конца движения нельзя — выведите «IMPOSSIBLE» (без кавычек).

 

Пример ввода 1

4 4

$.##

WWW#

#W@#

####

Пример вывода 1

YES

4 2

Пример ввода 2

6 6

######

#$....

#WW.##

#W..##

##@###

######

Пример вывода 2

YES

4 1

Пример ввода 3

6 6

######

#$.#..

#WW.##

#.#.##

##@###

######

Пример вывода 3

IMPOSSIBLE


Статистика Послать на проверку Обсуждение задачи Автор/источник:
Задачи с соревнований и сборов / Школьные олимпиады и курсы Вологодской области / ВсОШ, муниципальные этапы / Муниципальный этап - 2011-12 /
1161. 6 - Инверсии. 1162.
 
время генерации 0.11 сек.
© Copyright ВоГУ, АВТ, Носов Д.А., Андрианов И.А.