М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kazanetov
kazanetov
23.06.2020 04:24 •  Информатика

№111858. простой квадрат (informatics.mccme) у пети имеется игровое поле размером 33, заполненное числами от 1 до 9. в начале игры он может поставить фишку в любую клетку поля. на каждом шаге игры разрешается перемещать фишку в любую соседнюю по стороне клетку, но не разрешается посещать одну и ту же клетку дважды. петя внимательно ведет протокол игры, записывая в него цифры в том порядке, в котором фишка посещала клетки. пете стало интересно, какое максимальное число он может получить в протоколе. ему ответить на этот вопрос. входные данные входной файл содержит описание поля — 3 строки по 3 целых числа, разделенных пробелами. гарантируется, что все девять чисел различны и лежат в диапазоне от 1 до 9. выходные данные выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле. ответ можно выводить не в виде числа, а в виде строки или в виде последовательности отдельных цифр (но не разделяя их пробелами). пример ввод 1 2 3 4 5 6 7 8 9 вывод 987456321

👇
Ответ:
nikolya5
nikolya5
23.06.2020
Чтобы найти максимальное число, которое можно получить в протоколе игры на данном поле, нужно выложить цифры в порядке убывания.

Один из способов решить эту задачу - использовать алгоритм обхода графа в глубину (DFS).

1. Создайте функцию "DFS", которая будет искать максимальное число, начиная с указанной клетки поля.
2. В функции "DFS" проверьте ограничение, чтобы текущая клетка находилась в пределах поля и чтобы она не была уже посещена.
3. Создайте список-фишку, который будет хранить протокол игры, и добавьте текущую клетку в его конец.
4. Если длина протокола равна 9 (все клетки были посещены), преобразуйте список-фишку в число и сравните его с текущим максимальным числом. Если оно больше, обновите максимальное число.
5. Вызовите рекурсивно функцию "DFS" для каждого из возможных соседних клеток (верхней, нижней, левой и правой).
6. В конце, верните максимальное число.

Теперь, чтобы решить задачу, вызовите функцию "DFS" для каждой клетки на поле и найдите максимальное число среди всех результатов.

Переведем это решение на понятный язык школьнику:

1. Создай новую функцию "найти_максимальное_число".
2. В этой функции проверь, есть ли новые числа, которые можно использовать для начала игры (поездки фишкой).
3. Если есть такие числа, создай новую функцию "DFS", которая будет искать максимальное число, начиная с клетки, содержащей это число.
4. Функция "DFS" должна хранить список шагов, которые проходятся фишкой, и проверять каждую клетку на возможность пройти в нее.
5. Если встречается новая клетка, добавь ее значение в список шагов и вызови рекурсивно функцию "DFS" для этой новой клетки.
6. Если встречается уже использованная клетка или все клетки уже использованы, сравни получившееся число с максимальным числом.
7. После прохождения всех клеток, верни максимальное число.
8. В основной функции "найти_максимальное_число", вызови функцию "DFS" для каждой свободной клетки и запиши результаты в список.
9. Сравни все полученные числа и выведи наиболее большее.

Теперь пройдемся по шагам решения на примере.

Предоставлено поле:

1 2 3
4 5 6
7 8 9

Первая клетка (1) может быть выбрана первой.
Следующая клетка может быть 4 или 2:
- Если выбрано 2, следующая клетка может быть 1 или 3 (уже использована).
- Если выбрано 3, следующая клетка может быть 2, 6 или 4 (уже использована).
- Если выбрано 4, следующая клетка может быть 3, 7 или 5 (уже использована).
- Если выбрано 5, следующая клетка может быть 4, 8 или 6 (уже использована).
- Если выбрано 6, следующая клетка может быть 5 или 9 (уже использована).
- Если выбрано 9, следующая клетка может быть 6 или 8 (уже использована).
- Если выбрано 8, следующая клетка может быть 9 или 7 (уже использована).
...
- Если выбрано 4, следующая клетка может быть 1, 5 или 7 (уже использована).
...
- Если выбрано 7, следующая клетка может быть 4 или 8 (уже использована).
...

По такому принципу нужно пройти все возможные варианты и выбрать наибольшее число. В данном случае, максимальное число, которое можно получить в протоколе, будет равно 987456321.

Надеюсь, я дал понятное и подробное объяснение решения задачи. Если нужно, я могу разъяснить или продемонстрировать еще какие-либо шаги.
4,4(88 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ