题库练习 Reverse Madness
← 上一题 下一题 →

A16201 | Reverse Madness

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a string $s$ of length $n$ , containing lowercase Latin letters.

Next you will be given a positive integer $k$ and two arrays, $l$ and $r$ of length $k$ .

It is guaranteed that the following conditions hold for these 2 arrays:

- $l_1 = 1$ ;
- $r_k = n$ ;
- $l_i \le r_i$ , for each positive integer $i$ such that $1 \le i \le k$ ;
- $l_i = r_{i-1}+1$ , for each positive integer $i$ such that $2 \le i \le k$ ;

Now you will be given a positive integer $q$ which represents the number of modifications you need to do on $s$ .

Each modification is defined with one positive integer $x$ :

- Find an index $i$ such that $l_i \le x \le r_i$ (notice that such $i$ is unique).
- Let $a=\min(x, r_i+l_i-x)$ and let $b=\max(x, r_i+l_i-x)$ .
- Reverse the substring of $s$ from index $a$ to index $b$ .

Reversing the substring $[a, b]$ of a string $s$ means to make $s$ equal to $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$ .

Print $s$ after the last modification is finished.

输入格式

Each test contains multiple test cases. The first line contains a single integer $t$ ( $1 \le t \le 10^4$ ) — the number of test cases. Description of the test cases follows.

The first line of each test case contains two integers $n$ and $k$ ( $1 \le k \le n \le 2\cdot 10^5$ ) — the length of the string $s$ , and the length of arrays $l$ and $r$ .

The second line of each test case contains the string $s$ ( $ |s| = n$ ) containing lowercase Latin letters — the initial string.

The third line of each test case contains $k$ positive integers $l_1, l_2, \dots, l_k$ ( $1 \le l_i \le n$ ) — the array $l$ .

The fourth line of each test case contains $k$ positive integers $r_1, r_2, \dots, r_k$ ( $1 \le r_i \le n$ ) — the array $r$ .

The fifth line of each test case contains a positive integer $q$ ( $1 \le q \le 2 \cdot 10^5 $ ) — the number of modifications you need to do to $s$ .

The sixth line of each test case contains $q$ positive integers $x_1, x_2, \dots, x_q$ ( $1\le x_i \le n$ ) — the description of the modifications.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2\cdot10^5$ .

It is guaranteed that the sum of $q$ over all test cases does not exceed $2\cdot10^5$ .

It is guaranteed that the conditions in the statement hold for the arrays $l$ and $r$ .

输出格式

For each test case, in a new line, output the string $s$ after the last modification is done.

输入输出样例

输入 #1
5
4 2
abcd
1 3
2 4
2
1 3
5 3
abcde
1 2 3
1 2 5
3
1 2 3
3 1
gaf
1
3
2
2 2
10 1
aghcdegdij
1
10
5
1 2 3 4 2
1 1
a
1
1
1
1
输出 #1
badc
abedc
gaf
jihgedcdga
a
C++ 编辑器
输入
输出