题目描述
小 M 有一个长度为 n 的序列 v1,v2,…,vn,初始时,所有元素的值均为 1。
你有 3 种作用在这个序列上的操作:
- 选择一个下标 i(1≤i≤n),并且将 v1,v2,…,vi 的值全部设为 0,这种操作的代价是 ai;
- 选择一个下标 i(1≤i≤n),并且将 vi 的值设为 0,这种操作的代价是 bi;
- 选择一个下标 i(1≤i≤n),并且将 vi 的值设为 1,这种操作的代价是 ci。
现在有 q 次询问,每次询问中给定一个集合 P,你希望进行若干次操作(可能为 0),使得:序列 v 中下标位于该集合的元素的值为 1,其余位置的值为 0。形式化地说,对于任意 1≤i≤n,若 i∈P,则 vi=1,否则 vi=0。 并且,你需要最小化这次询问中所有操作的总代价。
注意,询问是相互独立的,也就是说,每次询问结束后,序列 v 将会回到初始状态,即所有元素的值全都变为 1。
输入格式
从标准输入读入数据。
输入的第一行包含一个正整数 n,表示序列 v 的长度。
第二行包含 n 个非负整数 a1,a2,…,an,表示第一种操作的代价。
第三行包含 n 个非负整数 b1,b2,…,bn,表示第二种操作的代价。
第四行包含 n 个非负整数 c1,c2,…,cn,表示第三种操作的代价。
第五行包含一个正整数 q,表示询问次数。
接下来的 q 行中,第 i 行包含以下内容:
- 开头一个非负整数 m,表示第 i 次询问中集合 P 的大小;
- 接下来有 m 个正整数 p1,p2,…,pm,依次表示集合 P 中每个元素的值,保证对于任意 1≤i<m,都有 pi<pi+1。
输出格式
输出到标准输出。
输出共 q 行,第 i 行包含一个非负整数,表示第 i 次询问中操作总代价的最小值。
提示
【样例解释 #1】
对于第一次询问,可以按顺序执行如下操作:
- 在 i=4 处执行操作 1,在这之后,序列 v 变为 [0,0,0,0,1],代价为 0;
- 在 i=4 处执行操作 3,在这之后,序列 v 变为 [0,0,0,1,1],代价为 2;
- 在 i=5 处执行操作 2,在这之后,序列 v 变为 [0,0,0,1,0],代价为 5。
所以总代价为 0+2+5=7,可以证明,不存在更小的总代价。
【样例解释 #3】
对于这个样例中的唯一一次询问,可以选择在 i=10 处执行操作 1,总代价为 a10=7。
【样例 #4】
见选手目录下的 reserve/reserve4.in
与 reserve/reserve4.ans
。
【样例 #5】
见选手目录下的 reserve/reserve5.in
与 reserve/reserve5.ans
。
这个样例满足测试点 8∼11 的条件限制。
【样例 #6】
见选手目录下的 reserve/reserve6.in
与 reserve/reserve6.ans
。
这个样例满足测试点 14∼15 的条件限制。
【样例 #7】
见选手目录下的 reserve/reserve7.in
与 reserve/reserve7.ans
。
这个样例满足测试点 16 的条件限制。
【样例 #8】
见选手目录下的 reserve/reserve8.in
与 reserve/reserve8.ans
。
这个样例满足测试点 17∼20 的条件限制。
【数据范围】
记 ∑m 为单测试点内所有询问 m 的值之和。
对于所有数据保证:1≤n≤5×105,0≤m≤n,0≤∑m≤5×105,1≤q≤max(n,∑m),0≤ai,bi,ci≤109,1≤pi≤n。
测试点编号 |
n≤ |
m≤ |
∑m≤ |
是否有特殊性质 |
1∼2 |
5×105 |
0 |
否 |
3∼4 |
7 |
15 |
5∼6 |
2×103 |
1 |
2×103 |
7 |
2×103 |
是 |
8∼11 |
2×103 |
否 |
12∼13 |
5×104 |
14∼15 |
5×105 |
1 |
5×105 |
16 |
5×105 |
是 |
17∼20 |
否 |
特殊性质:对于任意 1≤i≤n,保证 ci=0。
【提示】
本题输入输出量较大,请使用适当的 I/O 方式。