CF1481B New Colony

题目描述

到达目的地后,你想在新星球上建立一个新的殖民地。由于这个星球上有许多山脉,而殖民地必须建在平坦的地面上,你决定用巨石来填平这些山脉(你还在做梦,所以这对你来说很合理)。 你得到了一个数组 $h_1, h_2, \dots, h_n$,其中 $h_i$ 表示第 $i$ 座山的高度,$k$ 表示你拥有的巨石数量。 你将从第一座山的顶部依次投掷巨石,巨石的滚动规则如下(假设当前山的高度为 $h_i$): - 如果 $h_i \ge h_{i+1}$,巨石会滚到下一座山; - 如果 $h_i < h_{i+1}$,巨石会停止滚动,并使当前山的高度增加 $1$(即 $h_i = h_i + 1$); - 如果巨石滚到了最后一座山,它会掉进废物收集系统并消失。 你需要找出第 $k$ 块巨石停止的位置,或者判断它会掉进废物收集系统。

输入格式

第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。 每个测试用例包含两行。每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le n \le 100$;$1 \le k \le 10^9$),分别表示山的数量和巨石的数量。 第二行包含 $n$ 个整数 $h_1, h_2, \dots, h_n$($1 \le h_i \le 100$),表示每座山的高度。 保证所有测试用例中 $n$ 的总和不超过 $100$。

输出格式

对于每个测试用例,如果第 $k$ 块巨石会掉进废物收集系统,输出 $-1$。否则,输出第 $k$ 块巨石停止的位置。

说明/提示

让我们模拟第一个样例: - 第一块巨石从 $i=1$ 开始;由于 $h_1 \ge h_2$,它滚到 $i=2$,并在 $h_2 < h_3$ 时停止。 - 新的高度为 $[4,2,2,3]$。 - 第二块巨石从 $i=1$ 开始;由于 $h_1 \ge h_2$,它滚到 $i=2$;由于 $h_2 \ge h_3$,它滚到 $i=3$,并在 $h_3 < h_4$ 时停止。 - 新的高度为 $[4,2,3,3]$。 - 第三块巨石从 $i=1$ 开始;由于 $h_1 \ge h_2$,它滚到 $i=2$,并在 $h_2 < h_3$ 时停止。 - 新的高度为 $[4,3,3,3]$。 每块巨石停止的位置分别为 $[2,3,2]$。 在第二个样例中,所有 $7$ 块巨石都会直接停在第一座山,使其高度从 $1$ 增加到 $8$。 第三个样例与第一个类似,但现在你要投掷 $5$ 块巨石。前三块的滚动方式与第一个样例相同。之后,山的高度变为 $[4, 3, 3, 3]$,所以剩下的两块巨石会掉进废物收集系统。 在第四个样例中,唯一的一块巨石会直接掉进废物收集系统。 由 ChatGPT 4.1 翻译