Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Задача "Ладья в Лабиринте" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чем моя ошибка?(ООП, классы) http://www.cyberforum.ru/cpp-beginners/thread1551918.html
Что изменить в файле functionss.h? Заранее спасибо!!! Задание: Определить класс «матрица». В класс включить два конструктора: 1) создание матрицы по количеству столбцов и строк; 2)...
C++ Помогите улучшить неведомую функцию Помогите найти хорошую реализацию!!!! Если вам не понятно что делает функция тогда игнорируйте данную тему. А кто понял жду, может кто и поможет реализовать. (пишу в Ubuntu SDK на чистом с++11 без... http://www.cyberforum.ru/cpp-beginners/thread1551909.html
Определить номера строк, содержащих одновременно не менее трех четных элементов и ни одного нулевого C++
Здравствуйте,помогите найти ошибку. Мне нужно определить номера строк, содержащих одновременно не менее трех четных элементов и ни одного нулевого элемента. Вывести на экран исходную матрицу и...
C++ Естественная сортировка слияния
Имеется N человек и целые числа А1, ..., AN; человека i необходимо познакомить с Аi*людьми. Можно ли это сделать? Кого с кем знакомить, чтобы это сделать? Собственно условие задачи, не...
C++ Как задать переменную в C++ которая принимает комплексное значение? http://www.cyberforum.ru/cpp-beginners/thread1551855.html
Здравствуйте. Как объявить переменную, которая потом при расчетах принимает комплексный вид?
C++ Непонятное поведение программы при запросе к базе данных при запуске программы и выборе номера запроса 1 и 2 происходит вот такая вот ерунда не могу найти в чем причина #include "stdafx.h" #include <stdio.h> #include <conio.h> #include... подробнее

Показать сообщение отдельно
ilyasoloma
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 16

Задача "Ладья в Лабиринте" - C++

14.10.2015, 10:52. Просмотров 763. Ответов 10
Метки (Все метки)

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

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

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

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

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

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

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

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

Примеры

1 тест:
вход:
4 4
F.PS
.PP.
.PP.
....
выход: 3
2 тест:
вход:
4 4
F.PS
.PP.
.PP.
.P..
выход: -1

Была идея вводить 2 массива, один на горизонталь, другой на вертикаль, но реализовать не смог. Пробовал вводить массив на всё количество знаков, а потом пропускать через условные операторы, но работает только в частных случаях.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru