#P0571. 柱子(Pillars)

柱子(Pillars)

题目描述

nn 根柱子,第 ii 根柱子的高度为 hih_i

你需要找出一个尽可能长的跳跃序列 i1,i2,,iki_1,i_2,\ldots,i_k,满足:

  • 1i1<i2<<ikn1\le i_1<i_2<\cdots<i_k\le n
  • 对所有 1j<k1\le j<k,都有 hijhij+1d|h_{i_j}-h_{i_{j+1}}|\ge d

请输出最大长度以及任意一个达到最大长度的序列。

输入格式

第一行两个整数 n,dn,d

第二行 nn 个整数 h1,h2,,hnh_1,h_2,\ldots,h_n

输出格式

第一行输出一个整数 kk,表示最长跳跃序列的长度。

第二行输出 kk 个整数 i1,i2,,iki_1,i_2,\ldots,i_k,表示该序列中的柱子编号。

如果存在多个最优序列,输出任意一个即可。

样例

5 2
1 3 6 7 4
4
1 2 3 5 
10 3
2 1 3 6 9 11 7 3 20 18
6
1 4 6 7 8 9 

说明

第一个样例中,可以选择柱子 1,2,3,51,2,3,5,高度分别为 1,3,6,41,3,6,4。另一个长度为 44 的合法序列是 1,2,4,51,2,4,5

数据范围

1n1051\le n\le10^50d1090\le d\le10^91hi10151\le h_i\le10^{15}