加油站的充气泵排队太长了!你想要优化这个流程,以帮助顾客更快地为轮胎、运动球、巨型游行气球动物和其他产品充气。
充气泵是自动的:你将压力设置为特定的帕斯卡数值,然后将泵连接到充气产品上,它就会根据需要充气到该精确压力。泵上只有两个按钮:向上和向下。它们分别将目标压力精确增加或减少 1 帕斯卡。
有一排顾客,每位顾客都带来了恰好 $P$ 个需要用泵充气的产品。你知道每个产品的目标压力。你可以以任何你想要的顺序为一位顾客的产品充气,但你不能改变顾客的顺序。具体来说,你必须在为第 $(i+1)$ 位顾客的任何产品充气之前,完成第 $i$ 位顾客所有产品的充气。在处理两个产品之间,如果这两个产品的目标压力不同,你需要使用泵上的按钮。
泵最初设置为 0 帕斯卡,在所有顾客的所有产品充气完成后,它可以停留在任何数值。如果你能以最优方式安排每位顾客的产品顺序,你需要的最少按钮按压次数是多少?
输入格式
输入的第一行给出测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个整数 $N$ 和 $P$:分别表示顾客的数量和每位顾客带来的产品数量。然后是 $N$ 行。其中第 $i$ 行包含 $P$ 个整数 $X_{i,1}, X_{i,2}, \dots, X_{i,P}$,表示第 $i$ 位顾客带来的第 $j$ 个产品的目标压力为 $X_{i,j}$ 帕斯卡。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是按照指定压力为所有产品充气所需的最少按钮按压次数。
数据范围
$1 \le T \le 100$ $1 \le X_{i,j} \le 10^9$,对于所有 $i, j$。
测试集 1(可见判定) $2 \le N \le 10$ $2 \le P \le 3$
测试集 2(隐藏判定) $2 \le N \le 1000$ $2 \le P \le 100$
样例
样例输入 1
2 3 3 30 10 40 20 50 60 60 60 50 5 2 1 1000000000 500000000 1000000000 1 1000000000 500000000 1 1 1000000000
样例输出 1
Case #1: 110 Case #2: 4999999996
说明
在样例 1 中,一种最优的泵使用方式是:
- 向上按 10 次,将泵设置为 10;为(第 1 位顾客的)需要 10 帕斯卡的产品充气,
- 向上按 30 次,将泵设置为 40;为(第 1 位顾客的)需要 40 帕斯卡的产品充气,
- 向下按 10 次,将泵设置为 30;为(第 1 位顾客的)需要 30 帕斯卡的产品充气,
- 向下按 10 次,将泵设置为 20;为(第 2 位顾客的)需要 20 帕斯卡的产品充气,
- 向上按 30 次,将泵设置为 50;为(第 2 位顾客的)需要 50 帕斯卡的产品充气,
- 向上按 10 次,将泵设置为 60;为(第 2 位顾客的)需要 60 帕斯卡的产品以及(第 3 位顾客的)需要 60 帕斯卡的产品充气,最后
- 向下按 10 次,将泵设置为 50;为(第 3 位顾客的)需要 50 帕斯卡的产品充气。
总共需要 110 次按钮按压。
在样例 2 中,请注意答案可能大于 $2^{32}$。