问题描述
给定一个排列 P=(P1,P2,ldots,PN),其中包含数字 (1,2,ldots,N)。
对于所有的 i(1leqileqN),求以下值:
- $D _ i=\\displaystyle\\min_{j\\neq i}\\left\\lparen\\left\\lvert P _ i-P _ j\\right\\rvert+\\left\\lvert i-j\\right\\rvert\\right\\rparen$。
什么是排列?排列 (1,2,ldots,N) 是通过重新排列 (1,2,ldots,N) 得到的序列。换句话说,如果且仅当每个 i(1leqileqN) 在序列 A 中只出现一次时,长度为 N 的序列 A 是排列 (1,2,ldots,N)。
约束条件
- 2leqNleq2times105
- 1leqPileqN(1leqileqN)
- ineqjimpliesPineqPj
- 输入中的所有值都是整数。
输入
从标准输入中以以下格式给出输入:
N
P1 P2 ldots PN
输出
按照 i 的升序,以空格分隔的形式打印 Di(1leqileqN)。
示例输入 1
4
3 2 4 1
示例输出 1
2 2 3 3
例如,对于 i=1,
- 如果 j=2,我们有 leftlvertPi−Pjrightrvert=1 和 leftlverti−jrightrvert=1;
- 如果 j=3,我们有 leftlvertPi−Pjrightrvert=1 和 leftlverti−jrightrvert=2;
- 如果 j=4,我们有 leftlvertPi−Pjrightrvert=2 和 leftlverti−jrightrvert=3。
因此,当 j=2 时,值最小,即 $\\left\\lvert P _ i-P _ j\\right\\rvert+\\left\\lvert i-j\\right\\rvert=2$,所以 D1=2。
示例输入 2
7
1 2 3 4 5 6 7
示例输出 2
2 2 2 2 2 2 2
示例输入 3
16
12 10 7 14 8 3 11 13 2 5 6 16 4 1 15 9
示例输出 3
3 3 3 5 3 4 3 3 4 2 2 4 4 4 4 7