CFCF2208B.Cyclists

普及-

通过率:0%

AC君温馨提醒

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

题目描述

Bob 喜欢在手机上玩一个有趣的塔防游戏。在游戏中,他需要出牌来击败对手!

nn 张牌,按顺序排成一个队列,称为牌堆。在任何时刻,Bob 只能从牌堆的前 kk 张牌中出牌。每一回合,Bob 选择一张当前位于前 kk 的牌,将其从牌堆中移除,使用后再把同一张牌放到牌堆的末尾。也就是说,每回合,从队首前 kk 张牌中选择一张,将其移到队列的末尾,其后的所有元素前移一位。

有一张特殊的牌称为“胜利条件牌”,Bob 想要尽可能多地使用这张牌。但每张牌的使用需要消耗一定的能量。初始时,在第 ii 个位置(即 ii 从 1 开始计数)的牌使用一次需消耗 aia_i 的能量。所有出牌消耗的总能量不能超过 mm。胜利条件牌最初位于牌堆的第 pp 个位置。

你需要计算出,在总能量不超过 mm 的前提下,胜利条件牌最多能被使用多少次。

输入格式

输入包含多组测试用例。第一行是测试用例个数 tt1t50001\le t\le 5000)。接下来分别为每组测试用例的数据:

每组测试用例的第一行为四个整数 n,k,p,mn, k, p, m1k,pn50001\le k, p\le n\le 50001m50001\le m\le 5000),分别表示牌的数量、每次可选择的出牌范围、胜利条件牌初始位置及总能量。

第二行为 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,表示每张牌每次使用所需的能量(1aim1\le a_i\le m)。

保证所有测试用例的 nn 之和不超过 50005000

输出格式

每个测试用例输出一行,表示胜利条件牌能被使用的最大次数。

输入输出样例

  • 输入#1

    4
    2 1 2 42
    42 1
    3 3 2 6
    2 1 2
    3 2 2 6
    2 1 2
    8 4 7 10
    3 4 4 2 1 1 4 2

    输出#1

    0
    6
    2
    1

说明/提示

在第一个测试用例中,你只能出队首第一张牌,而出这张牌就用光了所有能量。由于胜利条件牌在队列的第二位,在能量用尽前无法出牌,所以答案为 00

在第二个测试用例中,可以出队列中的任何一张牌。最优策略很显然只会出胜利条件牌。由于每次用这张牌消耗 11 能量,总共有 66 能量,因此能最多使用 66 次。答案为 66

第三个测试用例中,可以如下操作(胜利条件牌用红色标记):

初始队列为 [2,1,2][2, \color{red}{1}, 2]

出队首第一张牌:队列变为 [1,2,2][\color{red}{1}, 2, 2]

再次出队首第一张牌:队列变为 [2,2,1][2, 2, \color{red}{1}]

再次出队首第一张牌:队列变为 [2,1,2][2, \color{red}{1}, 2]

出队首第二张牌:队列变为 [2,2,1][2, 2, \color{red}{1}]

在此过程中,胜利条件牌共被使用了 22 次,总共消耗了 66 能量。可以证实,不存在其它方案能在消耗不超过 66 的情况下多用一次胜利条件牌,因此答案为 22

第四个测试用例中,可以证实最多只能用一次胜利条件牌。始终选择队列中第 44 张牌即可实现,答案为 11

首页