SP6187 JANE - Jane and Tarzan

题目描述

简和塔赞各自有一部手机,他们想确保自己可以随时联系到对方。他们住在由很多棵树组成的一行中,只有当他们分别所在的树的高度差不超过 $D$ 时,他们才能保持联系。 简和塔赞需要按照以下规则移动:每一秒钟,简和塔赞都必须从他们所在的树同时跳到相邻的一棵树(可以往左跳也可以往右跳)。他们不能停留在同一棵树上。此外,一开始和之后的每一秒,他们都必须保证可以相互联系。 这些树从1到$N$按顺序编号。简想找到满足以下条件的树对 $(J, T)$,称为“好对”:如果简从第 $J$ 棵树开始,塔赞从第 $T$ 棵树开始,他们能经过一段时间的移动后交换位置,最后塔赞在第 $J$ 棵树,而简在第 $T$ 棵树,并且在整个过程中始终保持联系。 例如,第一个测试例子的情况是 $D = 0$,这意味着简和塔赞所在的树必须一直高度相等。对 $(1, 5)$ 是一个“好对”,因为简可以按 $1-2-3-4-5-6-5$ 的路径移动,而塔赞可以按 $5-6-5-4-3-2-1$ 的路径移动,这样他们就交换了初始的位置并在过程中始终能保持联系。 目标是输出所有 $J < T$ 的“好对” $(J, T)$。

输入格式

第一行输入两个整数 $N$ 和 $D$ ($1 \le N \le 100\,000$, $0 \le D \le 10^9$)。 接下来的 $N$ 行中,每行是一个小于 $10^9$ 的自然数,表示每棵树的高度,从第1棵树一直到第$N$棵树。

输出格式

输出所有符合条件的树对 $(J, T)$,按照字典序排序。对于树对 $(A, B)$ 和 $(C, D)$,如果 $A < C$ 或者 $A = C$ 且 $B < D$,那么 $(A, B)$ 被认为小于 $(C, D)$。 在所有测试数据中,满足条件的树对的数量不会超过 100,000 对。 **本翻译由 AI 自动生成**