Codeforces Round 794 (Div. 1) |
---|
Закончено |
Алина обнаружила странный язык, который содержит всего $$$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}$$$ в противном случае. Вы можете выводить каждую букву в любом регистре.
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
В первом наборе входных данных предложение $$$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}$$$.
Название |
---|