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