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

Остаповські шахи

Остаповські шахи

Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB

У місто Петрозаводськ приїхав відомий гросмейстер Бендер. На сеанс одночасної гри среди іншіих прийшли Ха, Ру та По. Ру програв N (1N10^9) раз, По програв M (1M10^1000) раз, а Ха взагалі не рахував. Друзі помітили, що Бендер грає у своєму стилі: з дошки час від часу щезають шахові фігури або з'являються нові (у Бендера немає совісті і він не зупиниться перед мухляжом з довільною фігурою). Ха це надоїло, і він вирішив записувати ходи, спочатку записавши поточну позицію. Ви повинні за записами Ха визначити, чи жульничав Остап.

Правила остаповських шахів схожі на звичайні, але Остап не знає, що таке взяття на проході, рокіровка та що пішак, дійшовши до останньої горизонталі, перетворюється у довільну фігуру. У всьому іншому фігури ходять як у звичайних шахах. Хід вважається коректним, якщо було переміщено лише одну свою фігуру, і при цьому свій король не знаходиться під шахом у кінці ходу. Шахом називається ситуація, коли ворожа фігура атакує поле, на якому стоїть король. Мат - це шах, при якому немає коректних ходів. Пат (нічия) - ситуація, коли немає коректних ходів і немає шаху. Початкова позиція може бути позбавлена здорового глузду. Не потрібно її перевіряти перед першим ходом.

Вхідні дані

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

Вихідні дані

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

Приклад

Вхідні дані #1
-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
Вихідні дані #1
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
Автор Андрій Румянцев
Джерело Petrozavodsk summer training camp, August 2005.