Codeforces Round 828 (Div. 3) |
---|
Закончено |
Массив из целых чисел $$$a_1, a_2, \ldots, a_n$$$ преобразуется в массив из строчных букв латинского алфавита с помощью следующей процедуры.
Пока в массиве есть хотя бы одно число:
Например, если изначально был массив $$$a = [2, 3, 2, 4, 1]$$$, то его могли преобразовать следующим образом:
После преобразования все получившиеся буквы объединяются в строку, в нашем примере получилось бы строка «cacta».
По данному массиву $$$a$$$ и строке $$$s$$$ определите, могла ли строка $$$s$$$ получиться из массива $$$a$$$ после описанного преобразования?
В первой строке входных данных задано целое число $$$t$$$ $$$(1 \leq t \leq 10^3$$$) — количество наборов входных данных.
Далее следуют описания наборов входных данных.
В первой строке каждого набора входных данных содержится целое число $$$n$$$ ($$$1 \leq n \leq 50$$$) — длина массива $$$a$$$ и строки $$$s$$$.
Во второй строке каждого набора входных данных содержится ровно $$$n$$$ целых чисел: $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq 50$$$) — элементы массива $$$a$$$.
В третьей строке каждого набора входных данных содержится строка $$$s$$$ длины $$$n$$$, состоящая из строчных латинских букв.
Для каждого набора входных данных выведите «YES», если из массива $$$a$$$ можно получить строку $$$s$$$, и «NO» иначе. Вы можете выводить каждую букву в любом регистре.
752 3 2 4 1cacta150a211 22ab41 2 2 1aaab51 2 3 2 1aaaaa61 10 2 9 3 8azzfdb71 2 3 4 1 1 2abababb
YES YES YES NO YES YES NO
Первый набор данных соответствует примеру, описанному в условии.
Во втором наборе входных данных можно выбрать число $$$50$$$ и букву a.
В третьем наборе входных данных можно выбрать число $$$11$$$ и букву a, после чего $$$a = [a, 22]$$$. После этого выбрать число $$$22$$$ и букву b и получить $$$a = [a, b]$$$.
В пятом наборе входных данных можно по очереди заменить все числа на букву a.
Название |
---|