SP25458 BUD13TLF - Boxes

题目描述

现有 $n$ 个盒子,它们的宽度分别为 $w_1, w_2, \ldots, w_n$,以及一个宽度为 $W$ 的大盒子。我们需要计算小盒子以不同顺序放入大盒子的方案数。规则如下: 1. 放入的大盒子的盒子总宽度不能超过 $W$。 2. 小盒子必须按照从左往右、不留空隙的顺序排列。大盒子末端可能会留有空隙,但如果存在未放置的小盒子可以正好填补这些空隙,则此排列无效(请参考样例 1 的说明)。 3. 如果一种排列中某个盒子位于第 $i$ 位,而在另一种排列中它不在第 $i$ 位,则这两种排列视为不同。 4. 如果两个盒子的宽度相同,则它们视为相同。

输入格式

输入由一个整数 $T$ 开始,表示测试用例的数量($1 \le T \le 100$)。 每个测试用例的第一行包含两个整数 $n$ 和 $W$($1 \le n \le 100$,$1 \le W \le 10^5$),分别表示小盒子的数量和大盒子的总宽度。 接下来的一行包含 $n$ 个整数 $w_1, w_2, \ldots, w_n$($1 \le w_i \le 10^5$),表示每个小盒子的宽度。

输出格式

对于每个测试用例,输出格式为 `Case X: Y`,其中 $X$ 是测试用例的编号(从 1 开始),$Y$ 是符合要求的排列方式数量,并对 10007 取模后的值。 **本翻译由 AI 自动生成**