SP247 CHOCOLA - Chocolate

题目描述

我们有一条巧克力,由$mn$个正方形小块组成。一个人需要将这条巧克力切成单个小块。每一部分的巧克力可以像图中标明的线那样,沿竖直和水平方向切开。 将巧克力沿着选中的竖直或水平方向切开,会将其分成更小的两块。每次破开一部分巧克力需要一定的代价,由一个正整数表示。这一代价并不取决于被切开的巧克力的大小,只取决于切开的边。让我们定义沿连续的水平线切开的代价为$x_1,x_2,\dots,x_{m-1}$,沿竖线切开的代价为$y_1,y_2,\dots,y_{n-1}$。 将整条巧克力切成单独的正方形小块的代价等于逐次切开的总代价。你需要计算将巧克力切成正方形小块所需的最小代价。 例如,如果我们将图中的巧克力先沿着水平线切开,然后对每一块沿着竖线切开,那么切开的代价为$y_1+y_2+y_3+4(x_1+x_2+x_3+x_4+x_5)$。 #### 任务 编写一个程序,对于**每个测试数据**: - 读入数字$x_1,x_2,\dots,x_{m-1}$和$y_1,y_2,\dots,y_{n-1} $。 - 计算将巧克力切成单独的正方形小块所需的最小代价,并输出结果。

输入格式

**本题有多组数据。** 第一行给出一个数字,表示数据组数,其后跟有一行空行。数据组数不会超过$20$。 对于每一组测试数据,第一行给出两个正整数$m,n$,由空行分开,其中$2\le m,n \le 1000$。 接下来的$m-1$行,每行给出$x_1,x_2,\dots,x_{m-1}$,其中$1\le x_i \le 1000$。 接下来的$n-1$行,每行给出$y_1,y_2,\dots,y_{n-1}$,其中$1\le y_i\le 1000$。 相邻测试数据之间会有一行空行分开。

输出格式

对每一组测试数据,输出一个整数,代表切开巧克力的最小代价。