Написать программу, имитирующую кубик Рубика. Программа читает одну строку, содержащую команды поворота граней в классической нотации через пробел (все команды: L R U D F B L' F' R' B' U' D' L2 F2 R2 B2 U2 D2 — поворот грани Left, Front, Right, Back, Up, Down на 90° по часовой стрелке, против-«'», дважды-«2»). После чего команды выполняются. Вначале выводится исходное положение, после каждой команды — результат.
Обратите внимание на то, что это неполная информация о состоянии кубика. Полная — положение и ориентация 21 кубика (27 всего, 6 неподвижных центров, ориентация которых не учитывается). Другой вариант — положение 48 этикеток на гранях кубика (54 всего, 6 неподвижных).
L' U2 R R' U2 L
Первый прямоугольник — исходное состояние кубика.
...yyy...... ...yUy...... ...yyy...... bbbrrrgggooo bLbrFrgRgoBo bbbrrrgggooo ...www...... ...wDw...... ...www...... ...ryy...... ...rUy...... ...ryy...... bbbwrrgggooy bLbwFrgRgoBy bbbwrrgggooy ...oww...... ...oDw...... ...oww...... ...yyr...... ...yUr...... ...yyr...... gggooybbbwrr bLbwFrgRgoBy bbbwrrgggooy ...oww...... ...oDw...... ...oww...... ...yyy...... ...yUr...... ...yyr...... gggoowggbrrr bLbwFwgRbrBy bbbwrwggbroy ...owo...... ...oDo...... ...oww...... ...yyr...... ...yUr...... ...yyr...... gggooybbbwrr bLbwFrgRgoBy bbbwrrgggooy ...oww...... ...oDw...... ...oww...... ...ryy...... ...rUy...... ...ryy...... bbbwrrgggooy bLbwFrgRgoBy bbbwrrgggooy ...oww...... ...oDw...... ...oww...... ...yyy...... ...yUy...... ...yyy...... bbbrrrgggooo bLbrFrgRgoBo bbbrrrgggooo ...www...... ...wDw...... ...www......
Положение наклеек на гранях соответствует при выводе развёртке куба: например, грань U выводится зеркально отражённой по горизонтали.