F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

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
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
 

Sample Output
Case #1: 2 1 Case #2: 3 1 Case #3: 4 2
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-23 00:03:06, Gzip enabled