P16863 [GKS 2021 #G] Banana Bunches

题目描述

Barbara 前往 Alan 的香蕉农场,农场中有 $N$ 棵香蕉树排成一行,用一个数组 $B$ 表示。位置 $i$ 上的树有 $B_i$ 串香蕉。每棵树的成本相同。一旦 Barbara 购买了一棵树,她就获得该树上所有的香蕉串。 Alan 有一个特殊规则:因为他不想在行中留下太多空隙,所以他允许 Barbara 最多购买香蕉树行中的 **$2$ 个连续段**。 Barbara 希望购买一些树,使得这些树上的香蕉串总数恰好等于她篮子的容量 $K$。她希望在花费尽可能少的钱的前提下实现这一点。她应该购买多少棵树?

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。 每个测试用例的第一行包含两个整数:$N$(Alan 农场中香蕉树的数量)和 $K$(Barbara 篮子的容量)。 下一行包含 $N$ 个非负整数 $B_1, B_2, \dots, B_N$,表示数组 $B$,其中第 $i$ 个整数表示 Alan 农场中第 $i$ 棵树的香蕉串数量。

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 Barbara 使用最多 $2$ 个连续段获得恰好 $K$ 串香蕉所需购买的最少树的数量,如果不可能则输出 `-1`。

说明/提示

在样例 #1 中,第一个连续段可以包含索引 $2$ 和 $3$ 的树,第二个连续段可以包含索引 $6$ 的树。 在样例 #2 中,无法用 $2$ 个连续段得到总和 $10$。 在样例 #3 中,第一个连续段可以包含索引 $\{1, 2\}$ 的树,第二个连续段可以包含索引 $\{5, 6\}$ 的树。我们不能取 $2 + 3 + 3$ 的组合(索引 $\{1, 3, 5\}$ 的树),因为那将是 $3$ 个连续段。 在样例 #4 中,唯一的连续段包含索引 $\{1, 2, 3\}$ 的树。 ### 限制条件 $1 \le T \le 100$。 对于每个 $i$ 从 $1$ 到 $N$,$0 \le B_i \le K$。 **测试集 1** $1 \le K \le 10^4$。 $1 \le N \le 50$。 **测试集 2** $1 \le K \le 10^4$。 $1 \le N \le 500$。 **测试集 3** $1 \le K \le 10^6$。 最多 $25$ 个测试用例满足: $1 \le N \le 5000$。 其余测试用例满足: $1 \le N \le 500$。 翻译由 DeepSeek V4 Pro 完成