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

Задача . C. Минус на минус дают плюс


Все знают, что два идущих подряд знака «минус» можно заменить на знак «плюс».

Вам задана строка \(s\), состоящая исключительно из знаков «плюс» и «минус». С ней можно провести ноль или более операций. Каждая операция состоит в выборе произвольных двух минусов, которые идут подряд, затем эти два минуса заменяются на знак «плюс». Таким образом, за одну операцию длина строки уменьшается на \(1\).

Вам заданы две строки \(s\) и \(t\). Определите, можно ли с помощью \(0\) или более операций из строки \(s\) получить строку \(t\).

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

В первой строке записано целое число \(k\) (\(1 \le k \le 10^5\)) — количество наборов входных данных в одном тесте. Далее содержатся описания наборов входных данных, каждый набор состоит из двух строк. Сначала идёт строка, содержащая \(s\) (длина строки \(s\) не превосходит \(2\cdot10^5\)), затем идёт строка, содержащая \(t\) (длина строки \(t\) не превосходит \(2\cdot10^5\)). Строки \(s\) и \(t\) — непустые, содержат исключительно знаки «плюс» и «минус».

Сумма длин строк \(s\) по всем наборам входных данных в тесте не превосходит \(2\cdot10^5\). Аналогично, сумма длин строк \(t\) по всем наборам входных данных в тесте не превосходит \(2\cdot10^5\).

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

Выведите \(k\) строк: \(i\)-я строка должна содержать YES, если ответ на \(i\)-й набор входных данных положительный, иначе NO. Выводите YES и NO исключительно прописными буквами.


Примеры
Входные данныеВыходные данные
1 5
-+--+
-+++
--------
-+--+-
-
+
--
---
+++
+++
YES
YES
NO
NO
YES

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

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