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

Задача . B. Лингвистика


Алина обнаружила странный язык, который содержит всего \(4\) слова: \(\texttt{A}\), \(\texttt{B}\), \(\texttt{AB}\), \(\texttt{BA}\). Оказалось, что в этом языке нет пробелов: предложение записывается путем объединения (конкатенации) его слов в одну строку.

Алина нашла одно такое предложение \(s\) и ей интересно: возможно ли, что оно состоит ровно из \(a\) слов \(\texttt{A}\), \(b\) слов \(\texttt{B}\), \(c\) слов \(\texttt{AB}\) и \(d\) слов \(\texttt{BA}\)?

Другими словами, определите, можно ли объединить (конкатенировать) эти слова \(a+b+c+d\) в некотором порядке так, чтобы получилась строка \(s\). Каждое из слов \(a+b+c+d\) должно быть использовано в конкатенации ровно один раз, но вы можете выбрать порядок, в котором они будут конкатенироваться.

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

Первая строка входных данных содержит одно целое число \(t\) (\(1 \le t \le 10^5\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит четыре целых числа \(a\), \(b\), \(c\), \(d\) (\(0\le a,b,c,d\le 2\cdot 10^5\)) — количество раз, которое слова \(\texttt{A}\), \(\texttt{B}\), \(\texttt{AB}\), \(\texttt{BA}\) соответственно должны быть использованы в предложении.

Вторая строка содержит строку \(s\) (\(s\) состоит только из символов \(\texttt{A}\) и \(\texttt{B}\), \(1\le |s| \le 2\cdot 10^5\), \(|s|=a+b+2c+2d\))  — предложение. Обратите внимание, что условие \(|s|=a+b+2c+2d\) (здесь \(|s|\) обозначает длину строки \(s\)) эквивалентно тому, что \(s\) имеет длину, равную длине конкатенации слов \(a+b+c+d\).

Сумма длин \(s\) по всем наборам входных данных не превышает \(2\cdot 10^5\).

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

Для каждого набора входных данных выведите \(\texttt{YES}\), если возможно, что предложение \(s\) состоит ровно из \(a\) слов \(\texttt{A}\), \(b\) слов \(\texttt{B}\), \(c\) слов \(\texttt{AB}\) и \(d\) слов \(\texttt{BA}\), и \(\texttt{NO}\) в противном случае. Вы можете выводить каждую букву в любом регистре.

Примечание

В первом наборе входных данных предложение \(s\)  — это \(\texttt{B}\). Очевидно, что оно не может состоять из одного слова \(\texttt{A}\), поэтому ответ  — \(\texttt{NO}\).

Во втором наборе входных данных предложение \(s\)  — \(\texttt{AB}\), и возможно, что оно состоит из одного слова \(\texttt{AB}\), поэтому ответ  — \(\texttt{YES}\).

В третьем наборе входных данных предложение \(s\)  — \(\texttt{ABAB}\), и возможно, что оно состоит из одного слова \(\texttt{A}\), одного слова \(\texttt{B}\) и одного слова \(\texttt{BA}\), так как \(\texttt{A} + \texttt{BA} + \texttt{B} = \texttt{ABAB}\).

В четвертом наборе входных данных предложение \(s\)  — \(\texttt{ABAAB}\), и возможно, что оно состоит из одного слова \(\texttt{A}\), одного слова \(\texttt{AB}\) и одного слова \(\texttt{BA}\), так как \(\texttt{A} + \texttt{BA} + \texttt{AB} = \texttt{ABAAB}\).

В пятом наборе входных данных предложение \(s\)  — \(\texttt{BAABBABBAA}\), и возможно, что оно состоит из одного слова \(\texttt{A}\), одного слова \(\texttt{B}\), двух слов \(\texttt{AB}\) и двух слов \(\texttt{BA}\), так как \(\texttt{BA} + \texttt{AB} + \texttt{B} + \texttt{AB} + \texttt{BA} + \texttt{A}= \texttt{BAABBABBAA}\).


Примеры
Входные данныеВыходные данные
1 8
1 0 0 0
B
0 0 1 0
AB
1 1 0 1
ABAB
1 0 1 1
ABAAB
1 1 2 2
BAABBABBAA
1 1 2 3
ABABABBAABAB
2 3 5 4
AABAABBABAAABABBABBBABB
1 3 3 10
BBABABABABBBABABABABABABAABABA
NO
YES
YES
YES
YES
YES
NO
YES

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

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