CFCF2161A.Round Trip

普及-

通过率:0%

AC君温馨提醒

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

题目描述

他们说如果你打了 1000 场,就能看到最后的隐藏动画片(c)。

Petya 和 Vasya 都喜欢参加 Codeforces 比赛。Vasya 和 Petya 打赌,他能比 Petya 参加更多场计分轮。最初,Vasya 的 rating 为 R0R_0。一共会举办 nn 场比赛,每场比赛属于以下两种类型之一:

  • div. 1 —— 对所有参赛者计分;
  • div. 2 —— 仅对 rating 严格小于 XX 的选手计分,对其他人不计分。

在一场不计分的比赛中,Vasya 的 rating 不会发生变化。如果 Vasya 在某场计分轮前的 rating 是 RR,那么对于任意非负整数 xx,且 xx 满足 RDxR+DR-D \leq x \leq R+D(其中 DD 为正整数),Vasya 可以采用某种策略,使得他在该轮之后的 rating 恰好变为 xx。注意,rating 永远不会变为负数。

请帮助 Vasya 计算,他最多能参加多少场计分轮。

输入格式

输入包含多组测试用例。
第一行包含一个整数 tt1t10001 \le t \le 1000),表示测试用例的组数。

每个测试用例的第一行包含四个整数:R0,X,D,nR_0, X, D, n0R01090 \leq R_0 \leq 10^91X1091 \leq X \leq 10^91D,n10001 \leq D, n \leq 1000)—— Vasya 的初始 rating,分区的 rating 阈值,rating 的最大变化量,以及比赛的总轮数。

每个测试用例的第二行包含一个长度为 nn 的字符串,只包含字符 ‘1’ 和 ‘2’,分别表示该场比赛为 div. 1 輪 和 div. 2 輪。

所有测试用例中 nn 的总和不超过 31043 \cdot 10^4

输出格式

对于每个测试用例,输出一个整数,表示 Vasya 最多可以参加多少场计分轮。

输入输出样例

  • 输入#1

    4
    2100 2100 5 3
    222
    2098 2100 5 6
    111211
    2115 2100 226 7
    2211121
    0 10 4 8
    22111121

    输出#1

    0
    6
    5
    8

说明/提示

在第一个样例中,由于 R0XR_0 \geq X,所以每一场 div. 2 的比赛对 Vasya 来说都不计分,因此他的 rating 从未变化。因此,他无法让任何一轮对自己计分,答案为 00

在第二个样例中,一种最优的 rating 变化序列为:20982103210120992097209720922098 \rightarrow 2103 \rightarrow 2101 \rightarrow 2099 \rightarrow 2097 \rightarrow 2097 \rightarrow 2092

首页