Codeforces Round 648 (Div. 2) |
---|
Закончено |
Vivek столкнулся с интересной задачей. У него есть лабиринт, который можно описать таблицей $$$n \times m$$$. Каждая клетка может быть одного из следующих типов:
Единственный выход из лабиринта находится в клетке $$$(n, m)$$$.
Человек может перейти в клетку если она не содержит стену и она имеет общую сторону с его текущей клеткой. Vivek хочет заблокировать (заменить на стены) некоторые пустые клетки, чтобы все хорошие люди могли дойти до выхода из лабиринта, но чтобы все плохие люди не могли. Клетку которая исходно содержит 'G' или 'B' нельзя блокировать, но через нее можно проходить.
Ваша задача — определить, можно ли заменить несколько (ноль или более) пустых клеток на стены, чтобы удовлетворить описанным ограничениям.
Гарантируется, что клетка $$$(n,m)$$$ пустая. Vivek разрешается ее блокировать.
В первой строке записано одно целое число $$$t$$$ $$$(1 \le t \le 100)$$$ — количество наборов входных данных. Далее следуют описания наборов входных данных.
В первой строке каждого набора входных данных записаны два целых числа $$$n$$$, $$$m$$$ $$$(1 \le n, m \le 50)$$$ — количество строк и столбцов в лабиринте.
В каждой из следующих $$$n$$$ строк записаны $$$m$$$ символов. Они описывают исходный лабиринт. Если символ в строке равен '.', тогда соответствующая клетка пустая, если символ равен '#', тогда клетка содержит стену, а 'G' и 'B' обозначают, что клетка содержит хорошего или плохого человека, соответственно.
Для каждого набора входных данных, выведите «Yes» или «No», в зависимости от того, можно ли заменить некоторые пустые клетки на стены, чтобы удовлетворить описанным ограничениям.
Вы можете выводить каждую букву в любом регистре (верхнем или нижнем).
6 1 1 . 1 2 G. 2 2 #B G. 2 3 G.# B#. 3 3 #B. #.. GG. 2 2 #B B.
Yes Yes No No Yes Yes
В первом и во втором наборах входных данных все условия уже выполнены.
В третьем наборе входных данных есть только одна свободная клетка $$$(2,2)$$$, и если мы заменим ее на стену, то хороший человек в клетке $$$(1,2)$$$ не сможет выйти.
В четвертом наборе входных данных хороший человек в клетке $$$(1,1)$$$ не может сбежать с самого начала, поэтому ответ «No».
В пятом наборе входных данных можно заблокировать клетки $$$(2,3)$$$ и $$$(2,2)$$$.
В последнем наборе входных данных можно заблокировать выход $$$(2, 2)$$$.
Название |
---|