10886. Гекс


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

У грі "Гекс" використовується дошка у вигляді ромбу, розміром \(N\) рядків по \(N\) шестикутників.

На рисунку показано поле при N=5. У грі приймають участь двоє: перший гравець ходить білими, другий – чорними. За один хід можна поставити одну фішку у ловільний незайнятий шестикутник.
Мета "білих" з'єднати верхню та нижню сторону дошки шляхом з білих фішек (пересватись можна лише через сторону шестикутника).
Мета "чорних" – з'єднати праву та ліву сторони дошки шляхом з чорних фішок.
Напишіть програму, яка за заданою позицією визначає, перемогли у ній білі чи ні.

Формат вхідних даних

У першому рядку записано число \(N\). (\(1 \le N \le 20\))
У наступних \(N\) рядках записано по одному рядку, довжиною \(N\) символів кожен.
Символ 'W' (white) означає, що відповідна клітинка зайнята білою фішкою, символ 'B' (black) – чорною, символ 'E' (empty) – клітинка порожня.

Формат вихідних даних

Виведіть слово YES, якщо білі виграли, тобто існує шлях, який з'єднує верхній та нижній рядки, і слово NO у протилежному випадку.

Приклад вхідних даних-1

2
EE
WW

Приклад вихідних даних-1

NO

Приклад вхідних даних-2

4
EWEE
EWEE
EWEE
BWBB

Приклад вихідних даних-2

YES

Приклад вхідних даних-3

4
EEWW
BWBE
WBEB
EEEE

Приклад вихідних даних-3

NO

Коментарі

Ще немає коментарів.