Олимпиадный тренинг

Задача . B. Роботы


Задача

Темы: реализация *800

Задано поле, разделенное на \(n\) строк и \(m\) столбцов. Некоторые ячейки пустые (обозначаются E), остальные содержат роботов (обозначаются R).

Вы можете посылать команду всем роботам одновременно. Команда может быть одного из четырех типов:

  • пойти наверх;
  • пойти направо;
  • пойти вниз;
  • пойти налево.

Когда вы посылаете команду, все роботы одновременно пытаются пойти в выбранном вами направлении. Если робот пытается выйти за пределы поля, то он взрывается; иначе, каждый робот передвигается в соседнюю клетку в выбранном направлении.

Вы можете посылать произвольное количество команд (возможно, ноль) в произвольном порядке. Ваша цель — привести хотя бы одного робота в верхний левый угол поля. Можете ли вы это сделать, не дав ни одному роботу взорваться?

Входные данные

В первой строке записано одно целое число \(t\) (\(1 \le t \le 5000\)) — количество наборов входных данных.

Каждый набор начинается со строки, содержащей два целых числа \(n\) and \(m\) (\(1 \le n, m \le 5\)) — количество строк и количество столбцов, соответственно. Затем следуют \(n\) строк; каждая содержит \(m\) символов. Каждый символ — это либо E (пустая клетка), либо R (робот).

Дополнительное ограничение на входные данные: в каждом наборе входных данных на поле есть хотя бы один робот.

Выходные данные

Если возможно привести хотя бы одного робота в верхний левый угол поля, не дав ни одному роботу взорваться, то выведите YES. Иначе выведите NO.

Примечание

Пояснение к примеру:

  1. в первом наборе достаточно послать команду налево;
  2. во втором наборе, если вы пошлете любую команду, то хотя бы один робот взорвется;
  3. в третьем наборе достаточно послать команду налево;
  4. в четвертом наборе робот уже стоит в верхнем левом углу;
  5. в пятом наборе последовательность «идти наверх, идти налево, идти наверх» приведет одного робота в верхний левый угол;
  6. в шестом наборе, если вы попытаетесь привести любого робота в верхний левый угол, то хотя бы один другой робот взорвется.

Примеры
Входные данныеВыходные данные
1 6
1 3
ERR
2 2
ER
RE
2 2
ER
ER
1 1
R
4 3
EEE
EEE
ERR
EER
3 3
EEE
EER
REE
YES
NO
YES
YES
YES
NO

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя