柱子
题目描述
土拨鼠发现了一排 n 根柱子,第 i 根柱子的高度为 hi 米。它从某根柱子 i1 出发,随后依次跳到 i2,…,ik,其中
1≤i1<i2<⋯<ik≤n.
它能从柱子 i 跳到柱子 j,当且仅当 i<j 且 ∣hi−hj∣≥d。
请找出一条长度最大的跳跃序列并输出。
输入格式
第一行包含两个整数 n,d。
第二行包含 n 个整数 h1,h2,…,hn。
输出格式
第一行输出最大长度 k。
第二行输出 k 个严格递增的柱子下标 i1,i2,…,ik。相邻两个所选柱子的高度差绝对值必须不少于 d。
若存在多条最长序列,输出任意一条即可。
样例输入 1
5 2
1 3 6 7 4
样例输出 1
4
1 2 3 5
样例输入 2
10 3
2 1 3 6 9 11 7 3 20 18
样例输出 2
6
1 4 6 7 8 9
数据范围
- 1≤n≤105;
- 0≤d≤109;
- 1≤hi≤1015。
| 子任务编号 |
分值 |
特殊限制 |
| 1 |
10 |
d=0 |
| 2 |
20 |
h1≤h2≤⋯≤hn |
| 3 |
30 |
n≤2000 |
| 4 |
40 |
无特殊限制 |
样例说明
第一组样例中,高度依次为 1,3,6,4 的下标序列 1,2,3,5 合法且最长;1,2,4,5 也是合法的最长序列。