#P17139. [KOI 2026 #1] 跳跃

[KOI 2026 #1] 跳跃

题目描述

在二维坐标平面上有 NN 个踏板,编号为 11NN。每个踏板都可以表示为坐标平面上的一个点。对于每个整数 ii1iN1 \le i \le N),踏板 ii 的坐标为 (Xi,i)(X_i,i)

对于两个整数 i,ji,j1i,jN1 \le i,j \le N),当且仅当以下两个条件均满足时,才能从踏板 ii 移动到踏板 jj

  • i<ji<j
  • XiXjD|X_i-X_j| \le D

其中,DD 是给定的常数,并且是一个正整数。

请编写一个程序,对于每个踏板,计算从该踏板出发,经过 00 次或多次从一个踏板到另一个踏板的移动后,能够到达的不同踏板数量。请注意,该数量应当包含作为起点的踏板本身。

输入格式

第一行输入两个整数 NNDD,整数之间以空格分隔。

第二行输入 NN 个整数 X1,X2,,XNX_1,X_2,\ldots,X_N,整数之间以空格分隔。

输出格式

第一行输出 NN 个整数,整数之间以空格分隔。其中,第 ii 个整数表示从踏板 ii 出发,经过 00 次或多次从一个踏板到另一个踏板的移动后,能够到达的不同踏板数量(1iN1 \le i \le N)。

6 2
3 5 4 6 1 3
6 4 3 1 2 1
6 3
1 4 8 9 10 15
2 1 3 2 1 1
3 2
1 4 7
1 1 1

提示

样例说明 1

对于每个踏板,从该踏板出发能够到达的踏板如下:

  • 踏板 11:能够到达包括踏板 11 本身在内的所有踏板。
  • 踏板 22:能够到达踏板 22334466
  • 踏板 33:能够到达踏板 334466
  • 踏板 44:除踏板 44 本身外,无法到达其他任何踏板。
  • 踏板 55:能够到达踏板 5566
  • 踏板 66:除踏板 66 本身外,无法到达其他任何踏板。

限制条件

  • 输入中给出的所有数均为整数。
  • 1N3000001 \le N \le 300\,000
  • 1D1091 \le D \le 10^9
  • 对于每个整数 ii1iN1 \le i \le N),均有 1Xi1091 \le X_i \le 10^9

子任务

  1. 1212 分)N300N \le 300
  2. 3232 分)N7500N \le 7\,500
  3. 99 分)X1X2XNX_1 \le X_2 \le \cdots \le X_N
  4. 2323 分)对于每个整数 ii1iN1 \le i \le N),均有 Xi30X_i \le 30
  5. 3333 分)D=1D=1
  6. 4141 分)无附加限制。

译注:没有单独的子任务 5 的测试点,所以子任务 6 有 7474 分。

翻译由 ChatGPT-5.6 完成