#B1023. 【ZCX-003-DIV2】D Forbidden Difference

【ZCX-003-DIV2】D Forbidden Difference

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N),以及一个非负整数 DD

你需要从序列 AA 中删除尽可能少的元素,得到一个新序列 BB,使得它满足以下条件:

对于任意的 1i<jB1 \le i < j \le |B|,都有:

BiBjD|B_i-B_j| \ne D

也就是说,序列 BB 中任意两个不同位置上的元素之差的绝对值都不能等于 DD

请你求出最少需要删除多少个元素。


输入格式

第一行包含两个整数:

N DN\ D

第二行包含 NN 个整数:

A1 A2  ANA_1\ A_2\ \dots\ A_N

输出格式

输出一个整数,表示最少删除的元素个数。


输入输出样例

输入 #1

5 2
3 1 4 1 5

输出 #1

1

说明 #1

删除 A1=3A_1=3 后,可以得到:

B=(1,4,1,5)B=(1,4,1,5)

此时对于所有 i<ji<j,都满足:

BiBj2|B_i-B_j| \ne 2

因此最少删除 11 个元素。


输入 #2

4 3
1 6 1 8

输出 #2

0

说明 #2

原序列 AA 本身就已经满足条件,因此不需要删除任何元素。


输入 #3

10 3
1 6 2 10 2 3 2 10 6 4

输出 #3

2

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 0D1060 \le D \le 10^6
  • 0Ai1060 \le A_i \le 10^6
  • 所有输入均为整数