|
||||||||||
D++游戏Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 171 Accepted Submission(s): 52 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: 然后输出一行,为最多能删掉的数字和完成这个目标的最小步数,用空格隔开。 Sample Input
Sample Output
Source | ||||||||||
|