#CF1917C. C. 浇水数组

C. 浇水数组

C. 浇水数组
每次测试的时间限制:2秒
每次测试的内存限制:256兆字节

你有一个长度为 nn 的整数数组 a1,a2,,ana_1, a_2, \dots, a_n。在接下来的 dd 天中,第 ii 天你必须恰好执行以下两种操作之一:

  1. 将数组 aa 的前 bib_i 个元素各加 11(即对每个 1jbi1 \le j \le b_i,令 aj:=aj+1a_j := a_j + 1)。
  2. 统计满足 aj=ja_j = j 的元素个数,记这个数为 cc。然后将 cc 加到你的得分上,并将整个数组 aa 重置为长度为 nn 的全零数组(即令 [a1,a2,,an]:=[0,0,,0][a_1, a_2, \dots, a_n] := [0, 0, \dots, 0])。

初始得分为 00。注意每天必须恰好执行上述两种操作之一:不能跳过一天,也不能在同一天执行两种操作。

问在 dd 天结束后,你能获得的最大得分是多少?

由于 dd 可能非常大,序列 bb 以压缩格式给出:

你得到一个整数序列 v1,v2,,vkv_1, v_2, \dots, v_k。序列 bbvv 的无限重复拼接:
$b = [v_1, v_2, \dots, v_k, v_1, v_2, \dots, v_k, \dots]$。

输入
第一行包含一个整数 tt1t1031 \le t \le 10^3)——测试用例的数量。

每个测试用例的第一行包含三个整数 n,k,dn, k, d1n20001 \le n \le 20001k1051 \le k \le 10^5kd109k \le d \le 10^9)——数组 aa 的长度,序列 vv 的长度,以及总天数。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ain0 \le a_i \le n)——数组 aa 的初始值。

每个测试用例的第三行包含 kk 个整数 v1,v2,,vkv_1, v_2, \dots, v_k1vin1 \le v_i \le n)——序列 vv

保证所有测试用例的 nn 之和不超过 20002000,所有测试用例的 kk 之和不超过 10510^5

输出
对于每个测试用例,输出一个整数:在 dd 天结束后你能获得的最大得分。

示例
输入:

5
3 4 4
1 2 3
1 3 2 3
6 2 3
6 1 2 4 1 5
6 6
5 1 1
0 5 0 5 0
5
1 1 1
1
1
3 4 6
1 2 3
1 3 2 3

输出:

4
3
0
1
5

注意
在第一个测试用例中,序列 bb 等于 [1,3,2,3,1,3,2,3,][1, 3, 2, 3, 1, 3, 2, 3, \dots]。一种最优方案如下:

  • 11 天执行第二种操作:得分增加 33,数组 aa 变为 [0,0,0][0, 0, 0]
  • 22 天执行第一种操作:数组 aa 变为 [1,1,1][1, 1, 1]
  • 33 天执行第一种操作:数组 aa 变为 [2,2,1][2, 2, 1]
  • 44 天执行第二种操作:得分增加 11,数组 aa 变为 [0,0,0][0, 0, 0]

可以证明无法得到超过 44 分,因此答案为 44

在第二个测试用例中,序列 bb 等于 [6,6,6,6,][6, 6, 6, 6, \dots]。得到 33 分的一种方法是:第 11 天和第 33 天执行第一种操作,第 22 天执行第二种操作。