Есть тренировочная сетка, состоящая из квадратов. Некоторые квадраты содержат цветные жетоны. Есть три типа жетонов - красные, зеленые и синие. Каждый квадрат содержит не более одного жетона. В начале тестирования робот стоит на одной клетке сетки, свободной от жетонов.
За один шаг робот может перейти из своего текущего квадрата в любой из соседних квадратов в северном, южном, западном или восточном направлениях, при условии, что эти квадраты действительно существуют. Робот не может выходить за пределы сетки.
Задача робота - передвигаться по сетке, собирать жетоны и возвращаться на стартовую клетку. Любой конкретный жетон можно собрать, только когда робот стоит на квадрате, где находится жетон. Робот должен собрать как минимум по одному жетону каждого цвета.
Задача:
Найдите минимальное количество шагов, которое должен выполнить робот, чтобы собрать хотя бы один жетон каждого цвета и вернуться в исходное положение.
Входные данные:
M N разделенные пробелом кол-во рядов и колонок и сетки
"." (точка) представляет собой пустой квадрат,
«X» (заглавная X) обозначает начальную позицию робота,
"R" (заглавная R) представляет квадрат с красным маркером,
«G» (заглавная G) представляет квадрат с зеленым жетоном,
«B» (заглавная 😎 представляет квадрат с синим жетоном.
Пример:
a)
Input
3 3
G.B
.X.
R..
Output
8
b)
Input
6 5
.GGRG
.....
.X...
.....
B...R
B.RRR
Output
14
c)
11 15
X......R.......
...............
...............
...............
.......G......B
...............
...............
...............
...............
...............
R.G.B..........
Output
28

Успешно разработанной программа считается:
1) Написана на перечисленных в названии проекта ЯП
2) Должна пройти 10 тестов:
2.1) На время выполнения программы;
2.2) Правильность выполнения программы
2.3)Тестами являются обычный текстовые файлы.
3) Плагиата не должно быть
* считывание идет с помощи стандартного потока ввода
Отзыв заказчика о сотрудничестве с Anton Trotsenko
Java/Python/C++ Графы, brute forceУже сотрудничали вместе, все отлично работает, быстро и эффективно.
Прошлый отзыв также актуален.
Отзыв фрилансера о сотрудничестве с Ihor Petrenko
Java/Python/C++ Графы, brute forceСотрудничаем уже второй раз. Все отлично! Рекомендую к сотрудничеству!
-
68 1 0 Здравствуйте!
Интересная задача, готов выполнить в соответствии со всеми требованиями.
-
Есть ли какие-то ограничения на M и N? Какие ограничения по времени?
-
Актуальные фриланс-проекты в категории C и C++
Инженер по инфраструктуре резидентных проксиМы строим сеть резидентных прокси с нуля — полностью собственную, без сторонних поставщиков. Нам нужен один исключительный сетевой инженер для создания всей технической базы. Что вы будете строить: - Android SDK для фонового использования, который направляет прокси-трафик через… C и C++, DevOps ∙ 2 дня 11 часов назад ∙ 12 ставок |
Добробка в существующей версии 1с розница блока для РЦ(распределительного центра)В общем поясню, что у нас за база - есть общий сервер, где есть база Розница (где ставятся все приходы) - база УТП, куда переливаются все продажи - считается наценка, остатки по складам - маленькие базы розничных магазинов. По обменам у нас магазины обмениваются с базой Розница… C и C++, C# ∙ 3 дня 1 час назад ∙ 6 ставок |
ПО Мастер-программа «KONSTRUCTOR»
185 977 UAH
Мы ищем очень опытного C++ разработчика для модернизации существующего ПО (мастер-программы). Программа отвечает за создание производного ПО представляющего аудио-визуальные сеансы психологической коррекции. Текущая версия написана на чистом WinAPI (Visual Studio 2019/2022).… C и C++, Десктопные приложения ∙ 8 дней 5 часов назад ∙ 19 ставок |
Написание кода для ArduinoНеобходимо разработать программное обеспечение для весового дозатора на базе Arduino Uno. Комплектующие: Arduino Uno R3 HX711 + тензодатчик LCD1602 I2C дисплей MAX7219 светодиодная матрица 8x32 5 кнопок управления 4-канальное реле 2 сигнальные лампы Вибромагнит грубого… C и C++, Встраиваемые системы и микроконтроллеры ∙ 9 дней 13 часов назад ∙ 15 ставок |
Нужно доработать проект или предоставить консультацию.
1000 UAH
|