QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Difficulty: [show]

#2213. Кінь

Statistics

Є шахівниця з $n$ рядків і $m$ стовпців. Деякі клітинки шахівниці пошкоджені. На шахівниці розташовані два коні, якими керують Alice та Bob. Рух коня визначається двома параметрами $r$ і $c$. На кожному кроці Alice або Bob може перемістити свого коня на клітинку, віддалену на $r$ клітинок по горизонталі та $c$ клітинок по вертикалі, або на $r$ клітинок по вертикалі та $c$ клітинок по горизонталі.

Alice та Bob ходять по черзі, починаючи з Alice. У свій хід гравець переміщує власного коня. Проте не можна переміщувати коня на пошкоджену клітинку або на клітинку, зайняту іншим конем.

Є додаткове обмеження. Розташування коней можна розглядати як упорядковану пару $(a,b)$, де $a$ — клітинка Alice, а $b$ — клітинка Bob. Заборонено повторювати розташування, яке вже траплялося раніше.

Гравець програє, якщо у свій хід не може зробити жодного ходу. Визначте переможця, якщо обидва гравці грають оптимально.

Вхідні дані

Перший рядок містить чотири цілі числа $n$, $m$, $r$ і $c$ ($1 \le n,m \le 1000$, $0 \le r<n$, $0 \le c<m$).

Кожен із наступних $n$ рядків містить рядок довжини $m$. Разом ці рядки описують шахівницю. Кожна клітинка належить до одного з чотирьох типів:

  • «@»: клітинка пошкоджена.
  • «.»: клітинка не пошкоджена.
  • «A»: клітинка не пошкоджена. Це початкова позиція коня Alice.
  • «B»: клітинка не пошкоджена. Це початкова позиція коня Bob.

Гарантується, що клітинки «A» та «B» трапляються на шахівниці рівно по одному разу.

Вихідні дані

Виведіть ім'я переможця: «Alice» або «Bob».

Приклади

Вхідні дані 1

2 3 1 2
A@.
B@.

Вихідні дані 1

Alice

Примітка

Першим ходом Alice переміщує коня на клітинку $(2,3)$.

Другим ходом Bob переміщує коня на клітинку $(1,3)$.

Третім ходом Alice повертає коня на клітинку $(1,1)$.

Четвертим ходом Bob не може повернути коня на клітинку $(2,1)$, оскільки це утворить упорядковану пару клітинок $(1,1),(2,1)$, що збігається з початковим розташуванням. Alice перемагає.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.