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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чем моя ошибка?(ООП, классы) http://www.cyberforum.ru/cpp-beginners/thread1551918.html
Что изменить в файле functionss.h? Заранее спасибо!!! Задание: Определить класс «матрица». В класс включить два конструктора: 1) создание матрицы по количеству столбцов и строк; 2) конструктор-копию. Определить функции члены: вывод на экран элементов матрицы. Перегрузить оператор: ++ нахождение суммы положительных элементов главной диагонали. Файл: mainfuction.cpp #include <cstdlib>...
C++ Помогите улучшить неведомую функцию Помогите найти хорошую реализацию!!!! Если вам не понятно что делает функция тогда игнорируйте данную тему. А кто понял жду, может кто и поможет реализовать. (пишу в Ubuntu SDK на чистом с++11 без Qt libs) // count вектора {1,2|,-127,5|,9..-2|,1,4} шагом 2 ; {1,2}=unsigned int ; {1,4}=unsigned int void my_find_pp(vector<char> &mem, unsigned int &j){ vector< iter_vec_c > vec; ... http://www.cyberforum.ru/cpp-beginners/thread1551909.html
Определить номера строк, содержащих одновременно не менее трех четных элементов и ни одного нулевого C++
Здравствуйте,помогите найти ошибку. Мне нужно определить номера строк, содержащих одновременно не менее трех четных элементов и ни одного нулевого элемента. Вывести на экран исходную матрицу и номера найденных строк. Я еще дополнительно считаю количество таких строк.Пытаюсь считать) #include "stdafx.h" #include <conio.h> #include <clocale> #include <ctime> #include <iostream> int main...
C++ Естественная сортировка слияния
Имеется N человек и целые числа А1, ..., AN; человека i необходимо познакомить с Аi*людьми. Можно ли это сделать? Кого с кем знакомить, чтобы это сделать? Собственно условие задачи, не получается написать код к самому условию через естественное слияние
C++ Как задать переменную в C++ которая принимает комплексное значение? http://www.cyberforum.ru/cpp-beginners/thread1551855.html
Здравствуйте. Как объявить переменную, которая потом при расчетах принимает комплексный вид?
C++ Как оптимизировать обращение к элементам вектора? Добрый день. Подскажите, пожалуйста, где я не прав. Есть класс, в нем координаты и другие параметры, описывающие существ (овцы и волки). Эти существа содержатся в векторе и в цикле проверяются между собой на разные условия: близость волков, поиск травы на карте, столкновение двух овец для размножения и т.д. Вот пример кода из цикла проверок. В данном случае, овца убегает от волка, если видит... подробнее

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

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

14.10.2015, 10:52. Просмотров 659. Ответов 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 массива, один на горизонталь, другой на вертикаль, но реализовать не смог. Пробовал вводить массив на всё количество знаков, а потом пропускать через условные операторы, но работает только в частных случаях.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru