14088: Лабіринт хрестики нолики-Maze Tac Toe-USACO2021OpenSilver
Бесі любить шукати шляхи в лабіринтах і грати в "хрестики-нулики". Фермер Джон придумав для неї спосіб грати в обидві гри одночасно!
Перше - "хрестики-нуліки" - замість розміщення X і O на гратці \(3 \times 3\), корови грають з М і О на гратці \(3 \times 3\). Під час ходу корова може поставити М або О в будь-який порожню комірку (на відміну від стандартної гри, де один гравець завжди ставить X, а інший завжди О). Переможець цієї гри той, хто перший отримає слово 'MOO' горизонтально, вертикально чи по діагоналі. У зворотному порядку теж зараховується, тобто OOM теж виграшна комбінація. Як і в стандартній грі, можна заповнити все поле і ніхто не виграє. Хід у грі вказується 3 символами 'Mij' або 'Oij', де \(i\) та \(j\) в інтервалі \(1 \ldots 3\) і вказують рядок і стовпець, у які ставиться відповідний символ 'M' або 'O'.
ФД спроектував для Бесі квадратний лабіринт, що представляє ґратку з \(N \times N\) комірок (\(3 \leq N \leq 25\)). Деякі комірки, включаючи всі граничні, містять великі стоги сіна, що запобігають Бесі від заходу в ці комірки. Бесі може вільно рухатися у всі інші комірки лабіринту, роблячи кроки в у звичайних напрямках -північ, південь, захід, схід. Деякі комірки містять листок паперу, на якому написано хід для "хрестиків нуликів". По ходу того, як Бесі рухається лабіринтом, щоразу, коли вона потрапляє у таку комірку, вона має зробити відповідний хід у грі "хрестики-нулики", в яку вона грає паралельно з рухом лабіринтом. Якщо відповідна комірка у "Хрестиках-нуликах" вже зайнята, то вона не робить жодних дій. В неї немає противника у грі "хрестики-нулики", але деякі з комірок лабіринту можуть суперечити її меті скласти слово 'MOO'.
Якщо Бесі зупиняє гру "хрестики-нулики" відразу після перемоги, визначте кількість різних виграшних конфігурацій у "хрестиках-нуликах", які вона може згенерувати, рухаючись відповідно до лабіринту.
Формат вхідних даних
Перший рядок містить \(N\).
Лабіринт визначається наступними \(N\) рядками, кожен з яких містить \(3N\) символів. Кожна комірка описується блоком з 3 символів: '###' для стіни, '...' для порожньої комірки, 'BBB' для комірки з якої стартує Бесі, хід для "хрестиків-нуликів". Рівно один осередок містить 'BBB'.
Формат вихідних даних
Виведіть кількість різних виграшних комбінацій для "хрестиків-нуликів" (можливо 0), які Бесі може згенерувати рухом лабіринтом, зупинившись після досягнення мети.
Приклад вхідних даних
7
#####################
###O11###...###M13###
###......O22......###
###...######M22######
###BBB###M31###M11###
###...O32...M33O31###
#####################
Приклад вихідних даних
8
У цьому прикладі є 8 виграшних комбінацій, які Бесі може досягти:
O.M .O. MOM O.. .O. .OM O.M .O. .OM O.. .O. MOM O.. ... OOM ..M .O. OOM ... .O. OOM ... ... OOM
Пояснення до однієї з них:
O.. ... OOMТут Бесі спочатку відвідує комірку O11, потім рухається в нижній коридор, відвідуючи O32, M33, O31. Гра припиняється, оскільки Бесі виграла.
Коментарі