Top.Mail.Ru
Ответы

Задача D. Ладья в лабиринте

Ладья – это шахматная фигура, которая за один ход может переместиться на любое количество клеток по горизонтали или вертикали. При этом она не может «перепрыгивать» через стоящие на ее пути фигуры.

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

Он размышляет над этим вопросом уже несколько дней, однако найти ответ не может. Поэтому он решил обратиться за помощью к Вам. Напишите программу, находящую ответ на Васину задачу.

Входные данные

Первая строка входного файла INPUT.TXT содержит два натуральных числа: n и m (1 ≤ n, m ≤ 500) – размеры лабиринта.

Каждая из последующих n строк содержит m символов. j-ый символ i-ой из этих строк соответствует клетке с координатами (i, j). Он равен «.» (точка), если клетка пуста, «P», если занята пешкой, «S», если это начальная клетка для ладьи, и «F», если это конечная клетка.

Выходные данные

В выходной файл OUTPUT.TXT выведите минимальное количество ходов, требуемое ладье для того, чтобы из начальной клетки попасть в конечную. Если конечная клетка недостижима из начальной выведите -1.

По дате
По рейтингу
Аватар пользователя
Оракул
10лет

Классический волновой алгоритм.

Аватар пользователя
Просветленный
10лет

Сегодня "по слухам" у многих школьников олимпиады по программированию. Задача явно оттуда. Могу помочь денька через 2 =)

Аватар пользователя
Ученик
10лет

школьникам нужно сейчас!!

Аватар пользователя
Оракул
10лет

И тут стандартный вопрос: что не получается? Или как обычно, сделайте мне все, а я даже в поисковике искать не хочу.

Аватар пользователя
Ученик
10лет

а ты попробуй решить!! потом говори!!

Аватар пользователя
Ученик
10лет

напиши пожалуйста саму программу!! я по ней посмотрю!!
(а то я сам не могу)

Аватар пользователя
Ученик
10лет

Тяжелая



Видео по теме