#P5712. D++游戏

D++游戏

Problem Description

众所周知,度度熊喜欢的字符只有两个:B 和D。

今天,它发明了一个游戏:D游戏。

度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只是代指等差数列[(等差数列百科)](http://baike.baidu.com/view/62268.htm)中的公差D。

这个游戏是这样的,首先度度熊拥有一个公差集合$\{D\}$,然后它依次写下$N$个数字排成一行。游戏规则很简单:

1.在当前剩下的有序数组中选择$X (X \geq 2)$ 个连续数字;

2.检查1 选择的$X$个数字是否构成等差数列,且公差 $d\in \{D\}$;   

3.如果2满足,可以在数组中删除这$X$个数字;

4.重复 $1 - 3$ 步,直到无法删除更多数字。
度度熊最多能删掉多少个数字,如果它足够聪明的话?

为了挑战自己,度度熊给D游戏多设了一个条件,$X_{min}$和$X_{max}$,在游戏的第一步,选出$X$个连续数字时,必须满足$X_{min} \leq X \leq X_{max}$。它称这个游戏为D++游戏。

同时精益求精的度度熊还希望知道删掉最多数字的最少步数。

Input

第一行为$T$,表示输入数据组数。

每组数据以四个整数 $N$,$M$,$X_{min}$,$X_{max}$ 开始 。接着的一行包括 $N$ 个整数,表示排成一行的有序数组 $A_{i}$。接下来的一行是 $M$ 个整数,即给定的公差集合 $D_{i}$。

$1\leq T\leq 100$

$1 \leq N, M \leq 32$

$2 \leq X_{min} \leq X_{max} \leq 16$

$-1\ 000\ 000\ 000 \leq A_{i}, D_{i} \leq 1\ 000\ 000\ 000$

Output

对第$i$组数据,输出

Case #i:

然后输出一行,为最多能删掉的数字和完成这个目标的最小步数,用空格隔开。

3 3 1 2 2 1 2 3 1 3 1 2 3 1 2 3 1 4 2 2 4 1 3 4 3 1 2
Case #1: 2 1 Case #2: 3 1 Case #3: 4 2