Kagari 最近沉迷一个叫做四角洲行动的游戏,这游戏里面有一个摸金模式,具体内容就是在游戏地图上寻找各种材料,并放在背包和胸挂等装备的格子里带出。不同材料有不同的大小和价值,同样背包,胸挂,口袋等不同装备也有各自的容量。
当然在这个游戏里面,每个人都希望自己带出去的材料的总价值最大,但由于材料的大小和价值实在太多了,Kagari 实在算不出来带哪些材料才能获得最大的价值。具体的,这个游戏中总共有四种形状大小的格子:$\texttt{1x1, 1x2, 1x3, 2x2}$,同样,材料的形状也是这四种。材料的放置有如下要求:
材料两维的大小不能超过放入的格子的两维大小;
不能拆分改变材料的形状,但可以旋转,即交换材料的两维大小;
可以将多个材料放入同一个格子,但材料之间不能重叠;
格子不需要装满。
例如,一个 $\texttt{1x2}$ 的材料和两个 $\texttt{1x1}$ 的材料就可以一起放入一个 $\texttt{2x2}$ 的格子,但此时这个格子不能放入更多的材料了。又例如一个 $\texttt{1x3}$ 的材料不能放入 $\texttt{2x2}$ 大小的格子内,两个 $\texttt{1x1}$ 的材料可以放入一个 $\texttt{1x3}$ 的格子,并且此时还可以再放入一个 $\texttt{1x1}$ 的材料,但不能放入其他大小的材料 。
现在 Kagari 已经统计好了她身上装备的各种格子的数量,以及已经捡到的所有材料的大小和价值,她希望写一个程序来计算能带出最大的价值。但由于 Kagari 是 2025 年 9 月才入学的新生,她还不会写代码,所以她希望你来帮忙。
首先一个正整数 $T$,表示数据组数。
对于每组数据,第一行四个非负整数 $a,b,c,d$($a+b+c+d>0,a,b,c,d\le 100$),分别表示大小为 $\texttt{1x1, 1x2, 1x3, 2x2}$ 的格子数量。
接下来四行,按照大小为 $\texttt{1x1, 1x2, 1x3, 2x2}$ 的顺序描述每种材料,第 $i$ 行首先一个非负整数 $k_i$($0\le k_i\le 1000$),表示这种大小的材料数量,接下来 $k_i$ 个正整数 $v_{i,1},\ldots,v_{i,k_i}$($1\le v_{i,j}\le 1\times 10^4$)分别表示每个材料的价值。
保证所有数据的 $a$ 之和,$b$ 之和,$c$ 之和,$d$ 之和都不超过 $5\times 100$,所有数据的 $k_1$ 之和,$k_2$ 之和,$k_3$ 之和,$k_4$ 之和都不超过 $4\times 10^5$。
对于每组数据,输出一行一个非负整数,表示能带出的最大价值。
3 1 2 1 0 1 3 1 10 1 6 0 3 0 2 0 9 2 9 10 3 1 1 2 10 7 3 14 10 14 1 21 0 0 1 2 0 2 10 6 1 2 3 24 27 9 2 8 16
\n · · · \n · \n · \n · \n \n · · · \n · · · · · · · · · \n · · · \n · \n \n · · · \n · · \n · \n · · · \n · · \n
19 71 67
\n \n \n