eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Проверка постфактум

Проверка постфактум

Клуб настольных игр Вашего университета только что провел турнир по шашкам, и Вам поручили сделать отчет об играх. К сожалению, по дороге домой Вы уронили все свои бумаги в лужу! Стихийное бедствие! Многое из того, что Вы написали, теперь нечитаемо; все, что у Вас осталось, - это несколько списков ходов, сыгранных в середине различных игр. Есть ли способ восстановить то, что произошло в этих играх? Вам лучше все быстро исправить, иначе они понизят тебя до составителя отчетов игры Крестики-нолики!

Шашки - известная настольная игра с простыми правилами. В нее играют на темных полях шахматной доски 8 * 8. Есть два игрока, черные и белые, которые по очереди двигают свои фигуры (все фигуры черных черные, а все фигуры белых белые). Каждая фигура занимает один темный квадрат и может быть как обычной шашкой, так и дамкой. Ход состоит из выбора одной фигуры и перемещения ее одним из двух способов:

  1. Перемещение по диагонали к незанятому соседнему темному квадрату, как показано на рисунке С.1(а). Это называется простым ходом. Если фигура - шашка, она может двигаться только в двух диагональных направлениях к противоположной стороне доски (вниз для черных, вверх для белых). Если фигура - дамка, она может двигаться во всех четырех диагональных направлениях.

  2. Перепрыгнуть через соседнюю фигуру противника на незанятую клетку сразу за ней, затем удалить (взять) эту фигуру. Шашки могут прыгать только в двух направлениях, описанных выше, а дамки могут прыгать во всех четырех. Затем игрок может повторить этот шаг, продолжая прыгать той же фигурой, пока есть правильно расположенные вражеские фигуры, которые нужно захватить. Такая последовательность из одного или нескольких прыжков называется прыжковым движением. На рисунке C.1(b) показано прыжковое движение, состоящее из трех прыжков.

prb11346.png

В шашках взятие - это вынужденный ход. Если в начале хода игрока доступен прыжок, он должен прыгнуть и не может прекратить прыгать этой фигурой, пока у нее не останется возможных прыжков. Они вольны выбирать, с какой фигурой прыгать и куда, если есть несколько возможностей. На рисунке C.1(b) черные не могли сделать никакого другого хода.

Если шашка достигает самого дальнего ряда от своего игрока (то есть черная шашка достигает нижнего ряда или белая шашка достигает верхнего ряда), она снимается с доски и заменяется дамкой того же цвета (говорят про повышение), и ход заканчивается. Фигура не может быть повышена, а затем прыгать назад как новая дамка на том же ходу.

По заданному списку ходов найдите такую позицию фигур, чтобы ходы можно было делать последовательно, начиная с этой позиции. В этой позиции может не быть черных шашек в нижнем ряду или белых шашек в верхнем ряду, поскольку они уже были бы повышены до дамок. Вам нужно только убедиться, что правила выше соблюдаются; Вам не следует гарантировать, что такая позиция доступна в реальной игре в шашки.

Входные данные

Первая строка содержит символ c и целое число n, где c ∈ {B, W} указывает, кто из игроков делает первый ход (черные или белые соответственно) и n (1n100) - количество ходов в списке. Затем следуют n строк, каждая из которых описывает ход в стандартной нотации шашек, приведенной ниже.

Темные квадраты обозначены цифрами 1 - 32, как показано на рисунке С.1(с). Простой ход с поля a на поле b записывается как a-b. Прыжок, начинающийся с a и перескакивающий на b1, b2, ..., bk, записывается как a x b1 x b2 x ... x bk.

Всегда существует допустимое решение для заданного набора ходов.

Выходные данные

Выведите две доски рядом (разделенные пробелом), указав положение всех фигур на доске до (слева) и после (справа) заданных ходов. Используйте '-' для светлых квадратов, '.' для пустых темных квадратов, строчные 'b' и 'w' для черных и белых шашек и прописные 'B' и 'W' для черных и белых дамок. Если имеется более одного допустимого решения, выведите любое.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
W 3
21-17
13x22x31x24
19x28
Выходные данные #1
-b-.-.-. -b-.-.-.
.-.-.-.- .-.-.-.-
-.-.-.-. -.-.-.-.
B-.-w-.- .-.-w-.-
-.-.-W-. -.-.-.-.
w-.-.-.- .-.-.-.-
-.-w-w-. -.-.-.-W
.-.-.-.- .-.-.-.-
Входные данные #2
B 5
2-7
9x2
32-27
2x11x18
5-9
Выходные данные #2
-.-b-.-W -.-.-.-W
b-b-.-.- .-.-.-.-
-w-.-.-. -b-.-.-.
B-w-b-.- B-w-.-.-
-.-.-.-. -.-W-.-.
.-.-.-.- .-.-.-.-
-.-.-.-. -.-.-B-.
.-.-.-B- .-.-.-.-
Источник 2019 ICPC Финал, Задача С