#ZK1098. 稻草人

稻草人

题目描述

田埂上立着一排稻草人(位置编号 1P1\sim P)。相邻位置上的稻草人被视为“邻居”。当你拔走某个位置 AA 的稻草人时,AA 的邻居会立刻知晓,并把消息继续传给自己的另一侧邻居,如此沿直线向两边扩散;一旦遇到边界(位置 11PP)或空位(之前已被拔走),传播就会停止。 每当某个稻草人得知“有人被拔走”的消息,你需要给他一枚安抚币。于是,当拔走位置 AA 时,AA 两侧连续未被拔走的一段稻草人都会得到安抚币。

起初每个位置都有稻草人。给出将要被拔走的 QQ 个位置(共拔 QQ 天),你可以自行决定拔走的顺序。请计算最少需要花费多少枚安抚币。


输入格式

第一行是测试用例数 NN。 每组测试用例两行: 第一行两个整数 P QP\ Q。 第二行给出 QQ互不相同的位置编号(升序)。


输出格式

对每组测试用例输出一行:

Case #X: C

其中 XX 为测试编号(从 1 开始),CC 为最少安抚币数。


输入输出样例 #1

输入 #1

2
8 1
3
20 3
3 6 14

输出 #1

Case #1: 7
Case #2: 35

样例解释

第二组中,若按顺序拔走 14、6、3,对应花费 19+12+4=3519 + 12 + 4 = 35,这是最优。


数据范围

对于30%的数据:1N1001 \le N \le 1001P1001 \le P \le 1001Q51 \le Q \le 5

对于100%的数据:1N1001 \le N \le 1001P1041 \le P \le 10^41Q1001 \le Q \le 100QPQ \le P,每个位置编号均为 1 到 P 之间的整数