P0712

Xavier is Learning to Count

Xavier is Learning to Count

99 岁的 Xavier 喜欢各种益智游戏。他的同学 Xerier 制作了许多卡片,每张卡片上都写有一个正整数,且任意两张卡片上的数字均不相同。

Xerier 希望 Xavier 从中选出 pp 张卡片,将卡片上的数字依次记为 X1,X2,…,XpX_1,X_2,\ldots,X_p,使它们满足:

X1+X2+⋯+Xp=nX_1+X_2+\cdots+X_p=n

同时,这些数字必须严格递增,即:

X1<X2<⋯<XpX_1<X_2<\cdots<X_p

对于每一个可能的正整数 nn,请计算满足上述条件的选取方案数。

输入格式

输入包含多组测试数据。

第一行包含一个整数,表示测试数据的组数。

对于每组测试数据:

  • 第一行包含两个以空格分隔的整数 mm 和 pp,分别表示卡片数量和需要选出的卡片数量;
  • 第二行包含 mm 个互不相同的正整数,表示各张卡片上的数字。

输出格式

对于每组测试数据,首先输出一行 Case #k:,其中 kk 表示测试数据编号,从 11 开始。

随后按照 nn 从小到大的顺序,输出所有方案数为正的正整数 nn。每行格式为 n: 方案数。

每组测试数据输出结束后,额外输出一个空行。

样例输入

3
3 3
1 2 3
5 4
1 3 5 6 7
10 3
1 2 3 4 5 6 7 8 9 10

样例输出

Case #1:
6: 1

Case #2:
15: 1
16: 1
17: 1
19: 1
21: 1

Case #3:
6: 1
7: 1
8: 2
9: 3
10: 4
11: 5
12: 7
13: 8
14: 9
15: 10
16: 10
17: 10
18: 10
19: 9
20: 8
21: 7
22: 5
23: 4
24: 3
25: 2
26: 1
27: 1

数据范围

  • 1≤p≤51\le p\le 5;
  • 每张卡片上的数字均为不超过 1300013000 的正整数,且彼此不同;
  • 测试数据约有 120120 组;
  • 约 90%90\% 的测试数据中,所有卡片上的数字均不超过 100100。

来源与许可

本题题面与测试数据整理自 BZOJ 2498。

样例 1

输入

3
3 3
1 2 3
5 4
1 3 5 6 7
10 3
1 2 3 4 5 6 7 8 9 10

输出

Case #1:
6: 1

Case #2:
15: 1
16: 1
17: 1
19: 1
21: 1

Case #3:
6: 1
7: 1
8: 2
9: 3
10: 4
11: 5
12: 7
13: 8
14: 9
15: 10
16: 10
17: 10
18: 10
19: 9
20: 8
21: 7
22: 5
23: 4
24: 3
25: 2
26: 1
27: 1