Направления
Дана строка длины , состоящая из букв , , , . Каждая буква представляет направление движения на координатной плоскости. Начав с точки , вы выполняете последовательность из шагов, как описано в строке . Правила движения для каждого направления следующие:
Если , переместитесь из точки в точку .
Если , переместитесь из точки в точку .
Если , переместитесь из точки в точку .
Если , переместитесь из точки в точку .
За одну операцию вам разрешается изменить любой символ в строке на его противоположный:
, .
Определите, возможно ли выполнить некоторые операции (возможно, ноль) перед движением так, чтобы, завершив все шагов, вы вернулись в начальную точку .
Входные данные
Первая строка содержит целое число — количество наборов входных данных в одном файле.
Каждый набор описывается в двух строках. Первая строка содержит целые числа .
Вторая строка содержит строку длины .
Гарантируется, что сумма по для всех наборов не превышает .
Выходные данные
Для каждого набора выведите YES
(без кавычек), если возможно вернуться в после выполнения некоторых операций, и NO
(без кавычек) в противном случае.
Вы можете выводить YES
и NO
в любом регистре (например, строки yES
, yes
и Yes
будут распознаны как положительный ответ).
Примеры
Примечание
В первом случае мы можем за одну операцию изменить строку на WNSE
. Давайте смоделируем наши движения, описанные этой строкой:
После первого шага мы находимся в точке ;
После второго шага мы находимся в точке ;
После третьего шага мы находимся в точке ;
После четвертого шага мы находимся в точке .
Таким образом, мы вернулись в начальную точку.
В третьем случае мы можем изменить строку на EWW
, чтобы вернуться в начальную точку.
Можно доказать, что во втором и четвертом случаях невозможно изменить строку так, чтобы после завершения всех шагов мы вернулись в .
Оценивание
( балла): ;
( балла): ;
( баллов): ;
( баллов): ;
( баллов): ;
( баллов): без дополнительных ограничений;