CF2238A Another Puzzle from Papyrus
题目描述
你充满了决心。
——Undertale
Papyrus 又为 Frisk 设计了一个新谜题。Papyrus 拿出了两个长度为 $n$ 的数组 $a$ 和 $b$,允许进行如下两种操作:
- 任选一个下标 $i$($1 \le i \le n$),将 $a_i$ 变为 $a_i - 1$。该操作耗时 $1$ 秒。
- 将整个数组 $a$ 中的所有元素重新排列,任意顺序均可。该操作耗时 $c$ 秒。
你的任务是将数组 $a$ 转换为数组 $b$。
Frisk 希望尽快完成这个谜题。帮助 Frisk 求出完成转换所需的最短时间。如果无法完成转换,则输出 $-1$。
输入格式
每组测试包含多个测试用例。第一行输入测试用例数 $t$($1 \le t \le 500$)。接下来描述每个测试用例。
每个测试用例的第一行输入两个整数 $n$ 和 $c$($1 \le n, c \le 100$)——数组 $a$ 和 $b$ 的长度,以及第二种操作的耗时。
第二行输入 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 100$)——第一个数组的元素。
第三行输入 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \le b_i \le 100$)——第二个数组的元素。
输出格式
对于每个测试用例,输出一个整数,表示完成转换所需的最少秒数。如果无法转换,则输出 $-1$。
说明/提示
在第一个测试用例中,仅用减法无法使 $a$ 变为 $b$,因为 $a_2 < b_2$。我们将数组 $a$ 重新排列为 $[5, 2, 3] \Rightarrow [2, 3, 5]$,此时只需将 $a_3$ 减 1,就能得到数组 $b$,总耗时为 $5 + 1 = 6$ 秒。
在第二个测试用例中,$a$ 中的所有元素都小于 $b$ 中的所有元素,也就是说无法将 $a$ 变成 $b$。
在第三个测试用例中,可以选择不重新排列数组,直接操作,答案为 $3$ 秒。如果进行一次重排,答案至少为 $4$,所以最优答案是 $3$ 秒。
在第六个测试用例中,可以将数组重排为 $[14, 20, 20]$,总耗时为 $5 + (14 - 12) + (20 - 18) + (20 - 17) = 12$ 秒。
由 ChatGPT 5 翻译