atcoder#ABC283F. [ABC283F] Permutation Distance

[ABC283F] Permutation Distance

配点 : 500500

問題文

(1,2,,N)(1,2,\ldots,N) の順列 P=(P1,P2,,PN)P=(P _ 1,P _ 2,\ldots,P _ N) が与えられます。

すべての i (1iN)i\ (1\leq i\leq N) に対して、以下の値を求めてください。

  • $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) を並べ替えて得られる数列のことをいいます。 つまり、長さ N の数列 Ai\ (1\leq i\leq N) がその中にちょうど 1 回だけ現れるとき、かつそのときに限り(1,2,\ldots,N) の順列です。

制約

  • 2N2×1052 \leq N \leq 2\times10^5
  • 1PiN (1iN)1 \leq P _ i \leq N\ (1\leq i\leq N)
  • ij    PiPji\neq j\implies P _ i\neq P _ j
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN

P1P _ 1 P2P _ 2 \ldots PNP _ N

出力

Di (1iN)D _ i\ (1\leq i\leq N)ii の昇順に空白区切りで出力せよ。

4
3 2 4 1
2 2 3 3

たとえば、i=1i=1 について

  • j=2j=2 のとき、$\left\lvert P _ i-P _ j\right\rvert=1,\left\lvert i-j\right\rvert=1$ です。
  • j=3j=3 のとき、$\left\lvert P _ i-P _ j\right\rvert=1,\left\lvert i-j\right\rvert=2$ です。
  • j=4j=4 のとき、$\left\lvert P _ i-P _ j\right\rvert=2,\left\lvert i-j\right\rvert=3$ です。

よって、j=2j=2 のとき $\left\lvert P _ i-P _ j\right\rvert+\left\lvert i-j\right\rvert=2$ で最小となるので、D1=2D _ 1=2 です。

7
1 2 3 4 5 6 7
2 2 2 2 2 2 2
16
12 10 7 14 8 3 11 13 2 5 6 16 4 1 15 9
3 3 3 5 3 4 3 3 4 2 2 4 4 4 4 7