Bomber Man wants to bomb an Array.

Accepts: 17
Submissions: 89
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
给一个长度为 $N$ 的一维格子和一些炸弹的位置,请你计算 “最大总破坏指数”。

每个炸弹都有向左和向右的破坏力,如果一个炸弹向左和向右的破坏力分别为 $L$ 和 $R$,
那么该炸弹将炸毁 $L + R + 1$ 个格子(左边$L$个,炸弹所在格子,右边$R$个)。
破坏指数的计算方式为:所有炸弹炸毁的格子数的乘积。假设第 $i$ 个炸弹炸毁了 $X_i$个格子,
那么总破坏指数就是 $X_1 * X_2 * .... X_m$。

现在告诉你每个炸弹的位置,你需要计算 最大的总破坏指数,注意:每个格子最多只允许被炸一次。
输入描述
多组测试数据,第一行为一个整数 $T(T \leq 11)$。
每组测试数据第一行为两个整数 $N, M(1 \leq N \leq 2000, 1\leq M \leq N)$,分别表示格子总数和炸弹总数 。
第二行是 $M$ 个互不相同的数表示每个炸弹所在的位置。
输出描述
对于每组测试数据,输出 floor(10^6 * log2(最大破坏指数)) (floor表示向下取整)。
输入样例
2
10 2
0 9
10 3
0 4 8
输出样例
4643856
5169925
Hint
Sample 1 :
Sample 2: