CF1481B.New Colony

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

New Colony

题目描述

到达目的地后,你想在新星球上建立一个新的殖民地。由于这个星球上有许多山脉,而殖民地必须建在平坦的地面上,你决定用巨石来填平这些山脉(你还在做梦,所以这对你来说很合理)。

你得到了一个数组 h1,h2,,hnh_1, h_2, \dots, h_n,其中 hih_i 表示第 ii 座山的高度,kk 表示你拥有的巨石数量。

你将从第一座山的顶部依次投掷巨石,巨石的滚动规则如下(假设当前山的高度为 hih_i):

  • 如果 hihi+1h_i \ge h_{i+1},巨石会滚到下一座山;
  • 如果 hi<hi+1h_i < h_{i+1},巨石会停止滚动,并使当前山的高度增加 11(即 hi=hi+1h_i = h_i + 1);
  • 如果巨石滚到了最后一座山,它会掉进废物收集系统并消失。

你需要找出第 kk 块巨石停止的位置,或者判断它会掉进废物收集系统。

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

每个测试用例包含两行。每个测试用例的第一行包含两个整数 nnkk1n1001 \le n \le 1001k1091 \le k \le 10^9),分别表示山的数量和巨石的数量。

第二行包含 nn 个整数 h1,h2,,hnh_1, h_2, \dots, h_n1hi1001 \le h_i \le 100),表示每座山的高度。

保证所有测试用例中 nn 的总和不超过 100100

输出格式

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

说明/提示

让我们模拟第一个样例:

  • 第一块巨石从 i=1i=1 开始;由于 h1h2h_1 \ge h_2,它滚到 i=2i=2,并在 h2<h3h_2 < h_3 时停止。
  • 新的高度为 [4,2,2,3][4,2,2,3]
  • 第二块巨石从 i=1i=1 开始;由于 h1h2h_1 \ge h_2,它滚到 i=2i=2;由于 h2h3h_2 \ge h_3,它滚到 i=3i=3,并在 h3<h4h_3 < h_4 时停止。
  • 新的高度为 [4,2,3,3][4,2,3,3]
  • 第三块巨石从 i=1i=1 开始;由于 h1h2h_1 \ge h_2,它滚到 i=2i=2,并在 h2<h3h_2 < h_3 时停止。
  • 新的高度为 [4,3,3,3][4,3,3,3]

每块巨石停止的位置分别为 [2,3,2][2,3,2]

在第二个样例中,所有 77 块巨石都会直接停在第一座山,使其高度从 11 增加到 88

第三个样例与第一个类似,但现在你要投掷 55 块巨石。前三块的滚动方式与第一个样例相同。之后,山的高度变为 [4,3,3,3][4, 3, 3, 3],所以剩下的两块巨石会掉进废物收集系统。

在第四个样例中,唯一的一块巨石会直接掉进废物收集系统。

由 ChatGPT 4.1 翻译

样例

4
4 3
4 1 2 3
2 7
1 8
4 5
4 1 2 3
3 1
5 3 1
2
1
-1
-1

在线编程 IDE

建议全屏模式获得最佳体验