#J1071d. 植物大战僵尸 (plant)

植物大战僵尸 (plant)

植物大战僵尸 (plant)

【题目描述】

小明是植物大战僵尸中的一个益智游戏中的最Carry的玩家。

在游戏里,他需要消灭 mm 只僵尸。第 ii 只僵尸一开始有 hih_i 点生命值。当僵尸的生命值0\le 0时,僵尸就被消灭了。

玩家有两种攻击伤害,分别对其中一个僵尸造成2/3点伤害(注意这儿指的是可以造成两点伤害,也可以造成三点伤害)。作为一个益智游戏,玩家对僵尸造成的伤害是随机的,要么是2,要么是3。但是聪明绝顶的玩家小明发现了游戏的漏洞:游戏的玩家攻击序列是固定的,并且可以找到其中的大小为 nn 的循环节。

也就是说,攻击序列分别是a1,a2,a3,...,an,an+1,an+2,...a_1,a_2,a_3,...,a_n,a_{n+1},a_{n+2},...,其中ai=a(i1)%n+1a_i=a_{(i-1)\%n+1}

现在,小明想知道消灭所有僵尸的最少攻击的次数。

【输入格式】

第一行一个整数TT,总共有TT组数据

对于每组数据,第一行一个整数nn,表示攻击序列的循环节

接下来一行nn个整数aia_i,表示攻击序列前nn个数

之后一行一个整数mm,表示僵尸的数量

接下来一行mm个整数,表示僵尸的血量hih_i

【输出格式】

多组数据,每组数据一个整数

【样例 11 输入】

2
2
3 2
3
2 4 2
4
2 2 3 2
2
3 4

【样例 11 输出】

4
3

【样例 22

见下发文件

【数据范围】

对于30%30\%的数据,1n,m8,1hi61\le n,m\le 8,1\le h_i\le 6

对于另外20%20\%的数据,保证n=1n=1

对于100%100\%的数据,$1\le T\le 10,1\le n,m\le 10^5,a_i\in\{2,3\},1\le h_i\le 10^9$