Разминочная задача: Исследователи плоского мира
Введение
Робототехника, планирование движений робота и обучение машин - вот области, лежащие на пересечении многих дисциплин, составляющих информатику: исксутвенный интелеект, алгоритмы и сложность, электрическое и механическое машиностроение и так далее. Кроме того, роботы-"черепахи" (описанные в работах Papert, Abelson, и diSessa) и роботы-"исполнители" (описанные в работах Pattis) многие годы изучались и испольовались студентами при изучении программирования.
Эта задача - об исследовании роботом доколумбова плоского мира.
Постановка задачи
По заданным размерам прямоугольной сетки, последовательным положениям робота и инструкциям написать програму, определяющую конечное положение робота.
Позиция робота состоит из координат на сетке (пара целых чисел: x-координата, и y-координата) и ориентацией в пространстве (N - север, S - юг, E - восток, W - запад). Инструкции робота - строка, состоящая из символов 'L', 'R', и 'F', обозначающих следующие инструкции:
- L (Left): робот поворачивается влево на 90 градусов и остаётся на месте
- R (Right): робот поворачивается вправо на 90 градусов и остаётся на месте
- F (Forward): робот передвигается "вперёд" на одну точку, но не меняет ориентации в пространстве
Так как стека прямоугольная и ограниченная, то робот, вышедший за пределы сетки, потерян. Однако, такой робот оставил "метку", запрещающий следующим роботам покидать сетку в этой точке.
След оставляется в точке, в которой находился робот непосредственно перед падением. Инструкция, в результате которой робот покинет сетку, в "помеченной" точке будет проигнорирована.
Входные данные
* Пара координат, определяющая верхний-правый угол сетки. Координаты нижнего-левого угла сичтаются равными (0, 0);
Один или более блоков, состоящих из:
* Начального положения и ориентации робота;
* Строки команд.
Каждый робот обрабатывается последовательно, т.е. следующий робот начинает путеществие только после того, как предыдущий закончил его.
Начальные позиции роботов всегда находятся в пределах сетки. Максимальное значение каждой координаты - 50. Длина строки инструкций не превышает 100 знаков.
Результат работы
Для каждого набора по инструкций программа должна выдать конечную позицию и ориентацию робота. Если робот падает с края сетки, выводится сообщение "LOST" в дополнение к позиции и ориентации.
Пример входных данных
5 3
1 1 E
RFRFRFRF
3 2 N
FRRFLLFFRRFLL
0 3 W
LLFFFLFLFL
Пример выдачи
1 1 E
3 3 N LOST
2 3 S
Напоминаю:
решения присылать в приват, на всякий случай - оставляйте тут сообщение, если отправили приват.