QOJ.ac

QOJ

时间限制: 2 s 内存限制: 512 MB 总分: 100 难度: [显示]

#1811. Jak przesuwać fasolki

统计

Mamy siatkę składającą się z $H$ wierszy i $W$ kolumn. Siatka jest cylindryczna: jej lewa i prawa krawędź są sklejone, więc kolumny $1$ oraz $W$ są sąsiadami.

Niektóre pola siatki zawierają naczynia, a na części z nich umieszczono ziarna w taki sposób, że początkowo każde naczynie zawiera nie więcej niż jedno ziarno. W dalszej części gry naczynie może zawierać dowolną liczbę ziaren.

Alicja i Bob grają w grę na tej siatce, wykonując ruchy na zmianę. Alicja wykonuje ruch jako pierwsza. W każdej turze gracz może wybrać dowolne ziarno, oznaczyć jego bieżący wiersz i kolumnę jako $(r, c)$ i przesunąć je zgodnie z następującymi zasadami:

  • Ziarno można przesunąć tylko na pole, na którym znajduje się naczynie.
  • Ziarna nie można przesunąć na pole, na którym to konkretne ziarno już wcześniej było (wszystkie ziarna są rozróżnialne).
  • Z pola $(r, c)$ ziarno można przesunąć o jedno pole w dół (na $(r + 1, c)$, możliwe tylko gdy $r < H$), o jedno pole w prawo (na $(r, c + 1)$, jeśli $c < W$, lub na $(r, 1)$, jeśli $c = W$) albo o jedno pole w lewo (na $(r, c - 1)$, jeśli $c > 1$, lub na $(r, W)$, jeśli $c = 1$).

Gracz, który nie może wykonać ruchu żadnym ziarnem w swojej turze, przegrywa grę.

Określ, kto wygra, jeśli obaj gracze grają optymalnie.

Wejście

Pierwsza linia wejścia zawiera dwie liczby całkowite $H$ oraz $W$ ($1 \le H, W \le 1000$).

Następnie następuje opis początkowej siatki, składający się z $H$ linii, z których każda zawiera ciąg znaków o długości $W$. $j$-ty znak $i$-tej linii to '#' jeśli na polu $(i, j)$ nie ma naczynia, '.' jeśli na tym polu znajduje się puste naczynie, lub 'B' jeśli na tym polu znajduje się naczynie z dokładnie jednym ziarnem. Nie gwarantuje się, że siatka zawiera znaki wszystkich trzech typów (na przykład siatka bez ziaren jest poprawna).

Wyjście

Jeśli Alicja wygrywa grę przy optymalnej grze obu stron, wypisz „Alice”. W przeciwnym razie wypisz „Bob”.

Przykład

Wejście 1

2 3
B.#
#..

Wyjście 1

Alice

Wejście 2

1 1
B

Wyjście 2

Bob

Wejście 3

1 3
B#.

Wyjście 3

Alice

Uwagi

W pierwszym przykładzie jedyne ziarno znajduje się początkowo na $(1, 1)$. Alicja przesuwa je na $(1, 2)$. Jedyny możliwy ruch Boba to przesunięcie na $(2, 2)$, następnie Alicja przesuwa ziarno na $(2, 3)$ i Bob nie ma już żadnych dostępnych ruchów, więc Alicja wygrywa.

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.