CF1851A.Escalator Conversations

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

Escalator Conversations

题目描述

有一天,Vlad 对在地铁扶梯上可以和谁聊天产生了好奇。共有 nn 位乘客。扶梯共有 mm 个台阶,所有台阶编号从 11mm,第 ii 个台阶的高度为 iki \cdot k

Vlad 的身高为 HH 厘米。如果两个人的身高分别为 aabb,当他们站在不同的台阶上,且他们的身高差等于台阶高度差时,他们就可以在扶梯上聊天。

例如,如果两个人的身高分别为 170170180180 厘米,且 m=10,k=5m = 10, k = 5,那么他们可以分别站在编号为 7755 的台阶上,此时台阶高度差等于两人的身高差:k2=52=10=180170k \cdot 2 = 5 \cdot 2 = 10 = 180 - 170。当然也有其他可能的站法。

给定一个大小为 nn 的数组 hh,其中 hih_i 表示第 ii 个人的身高。Vlad 想知道他可以分别和多少人单独在扶梯上聊天。

例如,如果 n=5,m=3,k=3,H=11n = 5, m = 3, k = 3, H = 11,且 h=[5,4,14,18,2]h = [5, 4, 14, 18, 2],Vlad 可以和身高为 55 的人聊天(Vlad 站在第 11 个台阶,另一个人站在第 33 个台阶),也可以和身高为 1414 的人聊天(例如 Vlad 站在第 33 个台阶,另一个人站在第 22 个台阶)。Vlad 不能和身高为 22 的人聊天,因为即使他们站在扶梯的两端,台阶高度差也只有 66,而他们的身高差为 99。Vlad 也不能和其余的人聊天,所以本例的答案是 22

输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000)——表示测试用例的数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含四个整数:n,m,k,Hn, m, k, H1n,m501 \le n, m \le 501k,H1061 \le k, H \le 10^6)。其中 nn 表示人数,mm 表示台阶数,kk 表示相邻台阶的高度差,HH 表示 Vlad 的身高。

第二行包含 nn 个整数:h1,h2,,hnh_1, h_2, \ldots, h_n1hi1061 \le h_i \le 10^6)。其中 hih_i 表示第 ii 个人的身高。

输出格式

对于每个测试用例,输出一个整数——Vlad 可以分别和多少人单独在扶梯上聊天。

说明/提示

第一个样例在题目描述中已给出解释。

在第二个样例中,Vlad 可以和身高为 1111 的人聊天。

在第三个样例中,Vlad 可以和身高为 44,74,98,6244, 74, 98, 62 的人聊天。因此答案为 44

在第四个样例中,Vlad 可以和身高为 7373 的人聊天。

由 ChatGPT 4.1 翻译

样例

7
5 3 3 11
5 4 14 18 2
2 9 5 6
11 9
10 50 3 11
43 44 74 98 62 60 99 4 11 73
4 8 8 49
68 58 82 73
7 1 4 66
18 66 39 83 48 99 79
9 1 1 13
26 23 84 6 60 87 40 41 25
6 13 3 28
30 70 85 13 1 55
2
1
4
1
0
0
3

在线编程 IDE

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