#DX0043. 序列更新

序列更新

题目描述

给定两个长度为 nn 的序列 a0,a1,,an1a_0,a_1,…,a_{n−1}b0,b1,,bn1b_0,b_1,…,b_{n−1},你需要依次执行 qq 次操作,每次操作将会给出一个整数 kk (0k<n0≤k<n),对于每个 ii (0i<n0≤i<n),你需要将 aia_i 更新为 max(ai,b(i+k) mod n)\max(a_i,b(i+k)\ \text{mod}\ n)。为了证明你确实维护了 aa 序列,请在每次操作之后输出 i=0n1ai∑\limits ^{n−1}_{i=0}a_i 的值。

输入格式

第一行包含一个正整数 TT (1T21≤T≤2),表示测试数据的组数。

每组数据第一行包含两个正整数 n,qn,q (1n,q2500001≤n,q≤250000),分别表示序列的长度以及操作的次数。

第二行包含 nn 个正整数 a0,a1,,an1a_0,a_1,…,a_{n−1} (1ai1091≤a_i≤10^9)。

第三行包含 nn 个正整数 b0,b1,,bn1b_0,b_1,…,b_{n−1} (1bi1091≤b_i≤10^9)。

接下来 qq 行,每行一个整数 kk (0k<n0≤k<n),依次描述每次操作。

输入数据保证每个 ai,bia_i,b_i 都是在 [1,109][1,10^9] 均匀随机生成得到(样例除外),且每个 kk 都是在 [0,n)[0,n) 均匀随机生成得到(样例除外)。

输出格式

对于每组数据输出 qq 行,其中第 ii 行输出一个整数,即在第 ii 次操作完毕之后 i=0n1ai∑\limits ^{n−1}_{i=0}a_i 的值。

输入样例

1
5 5
1 5 3 6 8
2 5 4 7 3
3
2
4
1
0

输出样例

29
31
33
35
36