Codeforces Round 900 (Div. 3) |
---|
Закончено |
Дана строка $$$s$$$ длиной $$$n$$$, состоящая их строчных латинских букв.
Затем вам будут даны положительное целое число $$$k$$$ и два массива $$$l$$$ и $$$r$$$ длиной $$$k$$$.
Гарантируется, что для этих двух массивов выполняются следующие условия:
Затем вам будет дано положительное целое число $$$q$$$ — количество операций, которые вам нужно сделать с $$$s$$$.
Каждая операция определяется одним положительным целым числом $$$x$$$, вам нужно сделать следующее:
Переворачивание подстроки $$$[a, b]$$$ строки $$$s$$$ означает, что $$$s$$$ становится равной $$$s_1, s_2, \dots, s_{a-1},\ s_b, s_{b-1}, \dots, s_{a+1}, s_a,\ s_{b+1}, s_{b+2}, \dots, s_{n-1}, s_n$$$.
Выведите $$$s$$$ после выполнения всех операций.
Каждый тест содержит несколько наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Затем следует описание наборов.
Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 2\cdot 10^5$$$) — длина строки $$$s$$$ и длина массивов $$$l$$$ и $$$r$$$.
Вторая строка каждого набора содержит строку $$$s$$$ ($$$ |s| = n$$$), содержащую строчные латинские буквы — исходная строка.
Третья строка каждого набора содержит $$$k$$$ положительных целых чисел $$$l_1, l_2, \dots, l_k$$$ ($$$1 \le l_i \le n$$$) — массив $$$l$$$.
Четвертая строка каждого набора содержит $$$k$$$ положительных целых чисел $$$r_1, r_2, \dots, r_k$$$ ($$$1 \le r_i \le n$$$) — массив $$$r$$$.
Пятая строка каждого набора содержит положительное целое число $$$q$$$ ($$$1 \le q \le 2 \cdot 10^5 $$$) — количество операций, которые нужно сделать с $$$s$$$.
Шестая строка каждого набора содержит $$$q$$$ положительных целых чисел $$$x_1, x_2, \dots, x_q$$$ ($$$1\le x_i \le n$$$) — описание операций.
Гарантируется, что сумма $$$n$$$ по всем наборам не превышает $$$2\cdot10^5$$$.
Гарантируется, что сумма $$$q$$$ по всем наборам не превышает $$$2\cdot10^5$$$.
Гарантируется, что условия, описанные в условии, выполняются для массивов $$$l$$$ и $$$r$$$.
Для каждого набора входных данных, в отдельной строке выведите строку $$$s$$$ после выполнения всех операций.
54 2abcd1 32 421 35 3abcde1 2 31 2 531 2 33 1gaf1322 210 1aghcdegdij11051 2 3 4 21 1a1111
badc abedc gaf jihgedcdga a
В первом наборе входных данных:
Исходная строка — «abcd». В первой операции $$$x=1$$$. Поскольку $$$l_1=1\leq x \leq r_1=2$$$, мы находим индекс $$$i = 1$$$. Мы переворачиваем подстроку с индекса $$$x=1$$$ до $$$l_1+r_1-x=1+2-1=2$$$. После этой операции наша строка становится «bacd».
Во второй операции $$$x=3$$$. Поскольку $$$l_2=3\leq x \leq r_2=4$$$, мы находим индекс $$$i = 2$$$. Мы переворачиваем подстроку с индекса $$$x=3$$$ до $$$l_2+r_2-x=3+4-3=4$$$. После этой операции наша строка становится «badc».
Во втором наборе входных данных:
Исходная строка — «abcde». В первой операции $$$x=1$$$. Поскольку $$$l_1=1\leq x \leq r_1=1$$$, мы находим индекс $$$i = 1$$$. Мы переворачиваем подстроку с индекса $$$x=1$$$ до $$$l_1+r_1-x=1+1-1=1$$$. После этой операции наша строка не изменилась («abcde»).
Во второй операции $$$x=2$$$. Поскольку $$$l_2=2\leq x \leq r_2=2$$$, мы находим индекс $$$i = 2$$$. Мы переворачиваем подстроку с индекса $$$x=2$$$ до $$$l_2+r_2-x=2+2-2=2$$$. После этой операции наша строка не изменилась («abcde»).
В третьей операции $$$x=3$$$. Поскольку $$$l_3=3\leq x \leq r_3=5$$$, мы находим индекс $$$i = 3$$$. Мы переворачиваем подстроку с индекса $$$x=3$$$ до $$$l_3+r_3-x=3+5-3=5$$$. После этой операции наша строка становится «abedc».
Название |
---|