CF2037F.Ardent Flames

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你获得了新的限时活动角色 Xilonen。你决定让她参与战斗。

有 nn 个敌人排成一行。第 ii 个从左到右的敌人拥有生命值 hih_i,当前位于位置 xix_i。Xilonen 的攻击伤害为 mm,你准备用她来击败这些敌人。

Xilonen 拥有强力的“地面践踏”攻击。在你进行任何攻击之前,你可以选择一个整数 pp 并让 Xilonen 站在该位置(pp 可以是任意整数位置,包括有敌人的位置)。之后,每次攻击时,她会对位于 pp 的敌人造成 mm 点伤害,对位于 p−1p-1 和 p+1p+1 的敌人造成 m−1m-1 点伤害,对位于 p−2p-2 和 p+2p+2 的敌人造成 m−2m-2 点伤害,依此类推。距离 Xilonen 至少 mm 的敌人不会受到任何伤害。

形式化地说,若某个敌人位于位置 xx,则她每次攻击会对该敌人造成 max⁡(0,m−∣p−x∣)\max(0, m - |p - x|) 点伤害。注意,你不能为不同的攻击选择不同的 pp。

在所有可能的 pp 中,输出 Xilonen 至少击败 kk 个敌人所需的最少攻击次数。如果不存在某个 pp 能使至少 kk 个敌人最终被击败,则输出 −1-1。当敌人的生命值降至 00 或以下时,视为被击败。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4)——表示测试用例的数量。

每个测试用例的第一行包含三个整数 nn、mm 和 kk(1≤k≤n≤1051 \leq k \leq n \leq 10^5,1≤m≤1091 \leq m \leq 10^9)。

接下来一行包含 nn 个整数 h1,h2,...,hnh_1, h_2, ..., h_n(1≤hi≤1091 \leq h_i \leq 10^9)。

最后一行包含 nn 个整数 x1,x2,...,xnx_1, x_2, ..., x_n(1≤xi≤1091 \leq x_i \leq 10^9,且对所有 1≤i<n1 \leq i < n,有 xi<xi+1x_i < x_{i+1})。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

对于每个测试用例,输出一个整数,表示至少击败 kk 个敌人所需的最少攻击次数。如果不存在某个 pp 能使至少 kk 个敌人最终被击败,则输出 −1-1。

输入输出样例

  • 输入#1

    6
    5 5 3
    7 7 7 7 7
    1 2 3 4 5
    9 5 9
    2 4 6 8 10 8 6 4 2
    1 2 3 4 5 6 7 8 9
    2 10 2
    1 1
    1 20
    2 10 1
    69696969 420420420
    1 20
    2 10 2
    10 15
    1 19
    2 2 2
    1000000000 1
    1 3

    输出#1

    2
    2
    -1
    6969697
    15
    1000000000

说明/提示

在第一个测试用例中,最优选择 p=2p=2。每次攻击,第一个敌人受到 5−∣2−1∣=45-|2-1|=4 点伤害,第二个敌人受到 55 点伤害,第三个敌人受到 44 点伤害,第四个敌人受到 33 点伤害,第五个敌人受到 22 点伤害。经过 22 次攻击,前三个敌人会被击败。可以证明,无论选择哪个 pp,都无法在少于 22 次攻击内击败 33 个敌人。

在第二个测试用例中,必须击败全部 99 个敌人。选择 p=5p=5,所有九个敌人都将在 22 次攻击内被击败。

在第三个测试用例中,必须击败两个敌人。然而可以证明,无论选择哪个 pp,都无法同时对两个敌人造成伤害,因此答案为 −1-1。

在第四个测试用例中,选择 p=1p=1 可以让我们在 69696976969697 次攻击内击败第一个敌人。

在第五个测试用例中,选择 p=10p=10 可以让每个敌人每次受到 11 点伤害。两名敌人都将在 1515 次攻击内被击败。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页