printРабочее место участника

printЗадачи

2378. Робот в лабиринте

Ограничения: время – 200ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

37664.png
Робот движется по лабиринту 4x4 под управлением программы, состоящей из следующих команд управления: N – идти на соседнюю клетку в северном направлении (вверх), S – идти на юг (вниз), E – на восток (вправо), W – на запад (влево). Если на пути робота стоит стена, то команда не выполняется. Робот сообщает для каждой команды, удалось ли ее выполнить или нет. Строка сообщений робота содержит в `i`-й позиции символ "+", если робот смог выполнить `i`-ю команду, и символ "-", если `i`-ю команду выполнить не удалось. При выполнении программы робот побывал в каждой клетке лабиринта и попробовал пройти через каждую внутреннюю стенку лабиринта и, возможно, через несколько внешних стен, которые находятся по периметру поля лабиринта. Перед началом выполнения программы робот находился в неизвестной клетке лабиринта.
ПрограммаEWNSWENESENWNWWESEENWSENSWSWSSWNESEEEN
Сообщения робота++-+-+-+--+-++++-++-+++--++++-++++++-+
По результатам выполнения программы восстановите внутреннюю структуру лабиринта и напишите две новых программы. В качестве решения вы должны выслать текстовый файл, содержащий ровно две строки. В первой строке нужно написать программу для решения первой подзадачи, во второй строке — для решения второй подзадачи. Если вы не можете написать программу для решения одной из подзадач, поставьте в соответствующей строке символ "-" (минус).
Система оценки и описание подзадач
Подзадача 1 (40 баллов)
В этой подзадаче только 1 тест. Робот должен пройти из клетки A в клетку B. Программа должна быть минимальной длины.
Подзадача 2 (60 балла)
В этой подзадаче 15 тестов, каждый тест оценивается в 4 балла. До выполнения программы робот находится в некоторой клетке, определяемой номером теста, а после завершения программы должен находиться в клетке A. Длина программы может быть любой, но не более 1000 команд. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки для всех подзадач (без разделения на отдельные тесты).
loading