ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1380. Остаповские шахматы

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
В город Петрозаводск приехал известный гроссмейстер Бендер. На сеанс одновременной игры среди прочих пришли Ха, Ру и По. Ру проиграл N (1 ≤ N ≤ 109) раз, По проиграл M (1 ≤ M ≤ 101000) раз, а Ха вообще не считал. Друзья заметили, что Бендер играет в своем стиле: с доски то и дело исчезают шахматные фигуры или появляются новые (у Бендера нет совести и он не остановится перед мухлежом с любой фигурой). Ха это надоело, и он решил записывать ходы, сначала записав текущую позицию. Вы должны по записям Ха определить, жульничал ли Остап.
Правила остаповских шахмат сродни обычным, но Остап не знает, что такое взятие на проходе, рокировка и что пешка, доходя до последней горизонтали, превращается в любую фигуру. В остальном фигуры ходят как в обычных шахматах. Ход считается корректным, если была перемещена только одна своя фигура, и при этом нет своего короля под шахом в конце хода. Шахом называется ситуация, когда вражеская фигура атакует поле, на котором стоит король. Мат - это шах, при котором нет корректных ходов. Пат (ничья) - ситуация, когда нет корректных ходов и нет шаха. Начальная позиция может быть лишена здравого смысла. Не нужно проверять ее перед первым ходом.

Исходные данные

Текущая позиция задана 64 числами, разделёнными пробелом или переносом строки: 0 означает пустую клетку, 1 — пешку, 2 — коня, 3 — слона, 4 — ладью, 5 — ферзя, 6 — короля. Отрицательные числа обозначают фигуры чёрных, соответственно, фигуры белых заданы положительными числами. Потом идет 1 ≤ P ≤ 60 — количество ходов в записи Ха. Далее записано, чей ход: White — белые, Black — чёрные. Потом следуют P ходов в формате клетка-клетка, клетка задана вертикалью и горизонталью. Вертикали нумерованы буквами от a до h слева направо, горизонтали от 1 до 8 снизу-вверх.

Результат

На каждый ход ваша программа должна вывести одно из следующих сообщений: «Incorrect» — ход некорректен, «Mate» — мат, «Check» — шах, «Draw» — пат, "Correct" — не имеет место ни одна из перечисленных выше ситуаций. После некорректного хода, ничьи или мата, выводится пустая строка, а затем текущее положение на доске в формате, аналогичном формату ввода доски, при этом некорректный ход не делается. Ходы, сделанные после некорректного хода, мата или ничьи игнорируются.

Примеры

исходные данныерезультат
-4 -2 -3 -5 -6 -3 -2 -4
-1 -1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
4 2 3 5 6 3 2 4
2
White
e2-e4
e7-e4
Correct
Incorrect

-4 -2 -3 -5 -6 -3 -2 -4
-1 -1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 0 1 1 1
4 2 3 5 6 3 2 4
-4 -2 -3 -5 -6 -3 -2 -4
-1 -1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
4 2 3 5 6 3 2 4
8
White
e2-e4
e7-e5
d1-f3
h7-h6
f1-c4
g7-g6
f3-f7
e8-f7
Correct
Correct
Correct
Correct
Correct
Correct
Mate

-4 -2 -3 -5 -6 -3 -2 -4
-1 -1 -1 -1 0 5 0 0
0 0 0 0 0 0 -1 -1
0 0 0 0 -1 0 0 0
0 0 3 0 1 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 0 1 1 1
4 2 3 0 6 0 2 4
0 0 0 0 0 6 0 -6
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 5
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1
White
h6-a6
Correct

0 0 0 0 0 6 0 -6
0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Автор задачи: Иван Попелышев
Источник задачи: Petrozavodsk summer training camp, August 2005.