Задача Налеее-во!

Файл входного файла: leftturn.in
Файл выходного файла: leftturn.out
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

Одним погожим деньком на плацу проходили учения. Если точнее, то шла отработка тактически важных строевых приемов: команд «направо», «налево», «кругом» и «шаг вперед». Стояла пяти-градусная жара, и солдаты скучали, в отличии от работника спецслужб потенциального врага, прибывшего на плац с целью оценки боевой готовности войск. Разведчика звали Смит, и трудился он в поте лица, делая снимки настолько часто, что буквально через три часа у него закончилась пленка. Проклиная себя за безалаберность, он покинул место проведения учений и вернулся лишь через 28 минут 12 секунд, захватив на этот раз с собой все снаряжение. Внимательно изучив обстановку, Смит понял, что за прошедшее время лишь один солдат сменил свое месторасположение. Поскольку ему не хочется признаваться в провале, он решил провернуть пару интриг и списать в конечном счете нехватку снимков на пожар в одной из африканских деревень. Смит — парень изворотливый, и такого рода вещи для него не составляют труда. Единственное, что осталось узнать — двигались ли за время его отсутствия другие солдаты, ведь они могли просто вернуться на свое место в ходе сложного тактического маневра. Кроме того, начальство может спросить, сколько команд было отдано в тот интервал времени, что не отражен на пленке. Теперь перед Смитом стоит задача: узнать, за какое минимальное число команд солдат мог переместиться из одной позиции в другую. Для наглядности, представим плац прямоугольным полемразмера N · M , а солдата на нем — фигурой, занимающей три подряд идущие смежные клетки. Далее проиллюстрировано выполнение команд.

Команда «налево»

...... ......
...... ...\..
..\-/. ...|..
...... .../..
...... ......

Команда «направо»

...... ......
...... .../..
..\-/. ...|..
...... ...\..
...... ......

Команда «кругом»

....... .......
...\-/. .../-\.
....... .......
....... .......

Команда «шаг вперед»

....... ...\-/.
...\-/. .......
....... .......
....... .......

Формат входных данных

В первой строке входного файла содержатся два целых числа N и M (1 ≤ N, M ≤ 100). Далее следуют N строк по M символов каждая — описание исходного положения солдата на плаце. Формат описания аналогичен примерам выше. Символом «*» задаются препятствия — клетки, занимать которые солдат в процессе своего перемещения не может — так Смит обозначил других солдат и противопехотные мины. Далее в аналогичном формате следует описание конечное положение солдата. Гарантируется, что все препятствия остались на своих местах.

Формат выходных данных

В выходной файл выведите минимальное количество команд, которое необходимо отдать солдату, чтобы он переместился из начального положения в конечное. Если же такое перемещение невозможно, выведите в выходной файл число «−1».

Примеры:

ввод вывод

4 7
.......
.......
.../-\.
.......
...\-/.
.......
.......
.......

3

4 7
.......
*******
.../-\.
.......
...\-/.
*******
.......
.......

-1

Added: admin
Difficulty: 1.71280945446
Accepted: 4
Submitted: 19
Analyze this Discuss

Обсуждение:

Начать обсуждение:

Powered by django, eJudge.