CF1550F.Jumping Around

省选/NOI-

通过率:0%

时间限制:5.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

There is an infinite pond that can be represented with a number line. There are nn rocks in the pond, numbered from 11 to nn. The ii-th rock is located at an integer coordinate aia_i. The coordinates of the rocks are pairwise distinct. The rocks are numbered in the increasing order of the coordinate, so a1<a2<⋯<ana_1 \lt a_2 \lt \dots \lt a_n.

A robot frog sits on the rock number ss. The frog is programmable. It has a base jumping distance parameter dd. There also is a setting for the jumping distance range. If the jumping distance range is set to some integer kk, then the frog can jump from some rock to any rock at a distance from d−kd - k to d+kd + k inclusive in any direction. The distance between two rocks is an absolute difference between their coordinates.

You are assigned a task to implement a feature for the frog. Given two integers ii and kk determine if the frog can reach a rock number ii from a rock number ss performing a sequence of jumps with the jumping distance range set to kk. The sequence can be arbitrarily long or empty.

You will be given qq testcases for that feature, the jj-th testcase consists of two integers ii and kk. Print "Yes" if the ii-th rock is reachable and "No" otherwise.

You can output "YES" and "NO" in any case (for example, strings "yEs", "yes", "Yes" and 'YES"' will be recognized as a positive answer).

存在一个可以用数轴表示的无限池塘。池塘中有 nn 块石头,编号从 11 到 nn。第 ii 块石头位于整数坐标 aia_i 处。所有石头的坐标两两不同,且石头按坐标递增顺序编号,即满足 a1<a2<⋯<ana_1 \lt a_2 \lt \dots \lt a_n。

一只机器人青蛙坐在编号为 ss 的石头上。该青蛙是可编程的,它具有一个基础跳跃距离参数 dd。此外,还有一个跳跃距离范围设置:若将跳跃距离范围设为某个整数 kk,则青蛙可以从某块石头向任意方向跳跃至另一块石头,只要两块石头之间的距离(即其坐标之差的绝对值)在区间 [d−k, d+k][d - k,\, d + k] 内(含端点)。

你需要为该青蛙实现一项功能:给定两个整数 ii 和 kk,判断青蛙能否从编号为 ss 的石头出发,在跳跃距离范围设为 kk 的前提下,经过若干次(可以为零次或任意多次)跳跃到达编号为 ii 的石头。

你将收到 qq 组测试用例,其中第 jj 个测试用例包含两个整数 ii 和 kk。若编号为 ii 的石头可达,则输出 "Yes";否则输出 "No"。

你可以以任意大小写形式输出 "YES" 和 "NO"(例如,字符串 "yEs"、"yes"、"Yes" 和 "YES" 均会被识别为肯定回答)。

输入格式

The first line contains four integers nn, qq, ss and dd (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5; 1≤s≤n1 \le s \le n; 1≤d≤1061 \le d \le 10^6) — the number of rocks, the number of testcases, the starting rock and the base jumping distance parameter.

The second line contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤1061 \le a_i \le 10^6) — the coordinates of the rocks. The coordinates of the rocks are pairwise distinct. The rocks are numbered in the increasing order of distance from the land, so a1<a2<⋯<ana_1 \lt a_2 \lt \dots \lt a_n.

Each of the next qq lines contains two integers ii and kk (1≤i≤n1 \le i \le n; 1≤k≤1061 \le k \le 10^6) — the parameters to the testcase.

第一行包含四个整数 nn、qq、ss 和 dd(1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5;1≤s≤n1 \le s \le n;1≤d≤1061 \le d \le 10^6)——分别表示岩石数量、测试用例数量、起始岩石编号以及基础跳跃距离参数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1061 \le a_i \le 10^6)——表示各岩石的坐标。所有岩石坐标两两不同,且岩石按其到岸边的距离递增顺序编号,即满足 a1<a2<⋯<ana_1 \lt a_2 \lt \dots \lt a_n。

接下来的 qq 行中,每行包含两个整数 ii 和 kk(1≤i≤n1 \le i \le n;1≤k≤1061 \le k \le 10^6)——表示该测试用例的参数。

输出格式

For each of the testcases print an answer. If there is a sequence of jumps from a rock number ss to a rock number ii with the jumping distance range set to kk, then print "Yes". Otherwise, print "No".

对每个测试用例输出一个答案。如果存在一条从编号为 ss 的岩石跳到编号为 ii 的岩石的跳跃序列,且跳跃距离范围设定为 kk,则输出“Yes”;否则输出“No”。

输入输出样例

  • 输入#1

    7 4 4 5
    1 5 10 13 20 22 28
    4 1
    7 2
    7 3
    3 2

    输出#1

    Yes
    No
    Yes
    Yes
  • 输入#2

    10 8 6 11
    1 2 4 7 8 9 11 13 19 20
    2 13
    5 8
    8 1
    6 15
    1 15
    2 7
    7 6
    8 9

    输出#2

    Yes
    Yes
    No
    Yes
    Yes
    Yes
    Yes
    Yes
  • 输入#3

    6 9 6 6
    1 2 4 9 18 19
    2 17
    1 18
    5 4
    2 11
    5 17
    6 8
    4 3
    3 3
    6 6

    输出#3

    Yes
    Yes
    Yes
    Yes
    Yes
    Yes
    No
    No
    Yes
  • 输入#4

    4 1 1 10
    1 8 10 19
    2 1

    输出#4

    Yes

说明/提示

Explanation of the first example:

In the first testcase the destination rock is the same as the starting rock, thus no jumps are required to reach it.

In the second testcase the frog can jump any distance in the range [5−2;5+2][5 - 2; 5 + 2]. Thus, it can reach rock number 55 (by jumping 77 to the right) and rock number 33 (by jumping 33 to the left). From rock number 33 it can reach rock number 22 (by jumping 55 to the left). From rock number 22 it can reach rock number 11 (by jumping 44 to the left). However, there is no way to reach rock number 77.

In the third testcase the frog can jump any distance in the range [5−3;5+3][5 - 3; 5 + 3]. Thus, it can reach rock number 77 by jumping to rock 55 first and to 77 afterwards.

The fourth testcase is shown in the explanation for the second testcase.

第一个样例的解释:

在第一个测试用例中,目标石头与起始石头相同,因此无需跳跃即可到达。

在第二个测试用例中,青蛙可跳跃的距离范围为 [5−2;5+2][5 - 2; 5 + 2]。因此,它可以到达编号为 55 的石头(向右跳 77 单位)以及编号为 33 的石头(向左跳 33 单位)。从编号为 33 的石头出发,它可以到达编号为 22 的石头(向左跳 55 单位);再从编号为 22 的石头出发,它可以到达编号为 11 的石头(向左跳 44 单位)。然而,不存在任何方式能到达编号为 77 的石头。

在第三个测试用例中,青蛙可跳跃的距离范围为 [5−3;5+3][5 - 3; 5 + 3]。因此,它可先跳至编号为 55 的石头,再跳至编号为 77 的石头,从而到达目标。

第四个测试用例的说明同第二个测试用例。

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

首页