Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Фирма по грузоперевозкам привезла к воротам загородного дома заказанный домашний кинотеатр
в очень большой кубической коробке размерами 1x1x1 метр. Так как машину на территорию
участка не пустили, коробка была сгружена у ворот. Одна из ее сторон
(имеется в виду грань куба) помечена как хрупкая – та, рядом с которой расположен экран.
Коробка выгружена так, что
хрупкая сторона не находится на земле.
Из-за огромных размеров коробки по участку её можно передвигать только перекатывая через
ребра. При этом хрупкая сторона не должна оказаться на земле, иначе экран немедленно сломается.
Участок имеет форму прямоугольника размером `N` на `M` метров. План участка нарисован на
клетчатой бумаге, размер клетки которой соответствует 1 метру. На плане введена система коорди-
нат так, что левая нижняя клетка плана имеет координату `(1;\ 1)`, правая нижняя – `(1;M)`, правая
верхняя – `(N;M)`.
Изначально коробка расположена рядом с воротами, в клетке, которая на плане имеет координаты `(1;\ b)`
(эта клетка расположена у нижней стороны плана участка), а переместить ее надо
к двери – на другую клетку с координатами `(c;\ d)`. Задано, с какой стороны исходно находится
хрупкая сторона. С какой стороны она будет после перекатываний – не важно (важно лишь, чтобы
она не оказалась на земле). Участок окружён по периметру забором, поэтому коробку не получится
выкатить за пределы участка.
Ваша задача – помочь грузчикам перекатить коробку от ворот до двери дома, не поломав экрана.
В первой строке вводятся целые числа N, M, b, c, d (`1\ ≤\ N\ ≤\ 10\ 000`, `1\ ≤\ M\ ≤\ 10\ 000`, `1\ ≤\ b\ ≤\ M`,
`1\ ≤\ c\ ≤\ N`, `1\ ≤\ d\ ≤\ M`). Во второй строке содержится одна из букв L, R, T, F, B, описывающая
начальное положение хрупкой стороны коробки (слева, справа, сверху, спереди и сзади соответственно).
Считается, что задняя сторона коробки повёрнута в сторону ворот. Ворота и дверь на
плане изображаются разными клетками.
Выведите последовательность перекатываний, которая позволит грузчикам выполнить постав-
ленную задачу. Перекатывания обозначаются буквами
- L (перекатывание влево – на единицу уменьшается вторая координата),
- R (перекатывание вправо – на единицу увеличивается вторая координата),
- F (перекатывание вперед – на единицу увеличивается первая координата),
- B (перекатывание назад – на единицу уменьшается первая координата).
Общее количество перекатываний не должно превышать `4*(M+N)` – иначе грузчики не возьмутся
за столь тяжелую работу.
Если это невозможно, выведите IMPOSSIBLE.
Пример ввода 1
4 3 2 3 2
T
Пример ввода 2
2 1 1 2 1
F
Пример вывода 2
IMPOSSIBLE
Источник: Московская открытая олимпиада школьников по программированию, 2010/11 учебный год