Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Для управления роботом-кладовщиком используется программа, которая может содержать
следующие команды:
- F – идти вперед на один шаг;
- F* – идти вперед, пока движение вперед возможно;
- R – повернуться на 180 градусов;
- T – взять верхний ящик в стопке ящиков прямо перед роботом;
- D – поставить ящик в стопку ящиков прямо перед роботом;
- C – подняться или спуститься на соседнюю стопку ящиков.
Пусть `h` – высота из стопки ящиков, на которой находится робот, и `z` – высота
соседней стопки ящиков, на которую смотрит робот, тогда для
команд F, T, D и C должны выполняться следующие ограничения.
Команда | Ограничения |
F | `h=z` |
C | `h=z-1` или `h=z+1` |
T | `h=z` или `h+1=z` или `h+2=z`, робот не держит ящик |
D | `h=z-1` или `h=z` или `h=z+1`, робот держит ящик |
Робот может переносить только один ящик. Робот не может покидать комнату.
Комната имеет длину, равную длине `N` ящиков, фиксированную
ширину (1 ящик) и неограниченную высоту. Перед выполнение программы робот стоит в самой левой (первой) позиции и
смотрит направо. Если робот не может выполнить очередную команду программы из-за ограничений, то
команда пропускается. Напишите программу, которая моделирует движение робота по заданной программе.
Первая строка ввода содержит одно целое число `N` (`2\ ≤\ N\ ≤\ 10`) – длина комнаты. Вторая строка ввода содержит `N`
чисел от 0 до 1 – начальные высоты стопок ящиков. Третья строка ввода содержит программу для робота
длиной от 1 до 100 символов, содержащая только символы F, R, D, T, С и возможно символ * после F.
В первой строке вывести одно целое число — позицию робота. Во второй строке вывести высоты
стопок ящиков после выполнения программы.
Пример ввода
4
0 1 1 1
TFRDRTRDRFTRD
.... (до выполнения >### программы) | #... (после выполнения ##<. программы) |
Описание подзадач и системы оценивания
Подзадача 1 (50 баллов)
Программа для робота содержит только команды R, F, T и D, все команды в программе соответствуют ограничениям.
В начальной позиции робота высота стопки равна 0.
В этой подзадаче 10 тестов, каждый тест оценивается в 5 баллов. Баллы за каждый тест начисляются независимо.
Подзадача 2 (50 баллов)
Необходимые подзадачи: 1
Программа может содержать любые команды.
В этой подзадаче 10 тестов, каждый тест оценивается в 5 баллов. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте для всех подзадач.