atcoder#ABC283F. [ABC283F] Permutation Distance

[ABC283F] Permutation Distance

题目描述

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

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

输入格式

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

N N P  1 P\ _\ 1 P  2 P\ _\ 2 \ldots P  N P\ _\ N

输出格式

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

题目大意

给定一个 1n1 \sim n 的排列 p=(p1,p2,,pn)p = (p_1, p_2, \dots, p_n)

你需要对每个 ii 求得

$$D_i = \min_{j \neq i} \left\{ \lvert p_i - p_j\rvert + \lvert i - j\rvert \right\} $$

一个 1n1\sim n 的排列是一个长为 nn 的序列,满足 [1,n][1, n] 内的所有整数恰好都在其中出现一次。

2n2×1052\le n \le 2\times 10^5

4
3 2 4 1
2 2 3 3
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

提示

制約

  • 2  N  2×105 2\ \leq\ N\ \leq\ 2\times10^5
  • 1  P  i  N (1 i N) 1\ \leq\ P\ _\ i\ \leq\ N\ (1\leq\ i\leq\ N)
  • i j     P  i P  j i\neq\ j\implies\ P\ _\ i\neq\ P\ _\ j
  • 入力はすべて整数

Sample Explanation 1

たとえば、i=1 i=1 について - j=2 j=2 のとき、$ \left\lvert\ P\ _\ i-P\ _\ j\right\rvert=1,\left\lvert\ i-j\right\rvert=1 $ です。 - j=3 j=3 のとき、$ \left\lvert\ P\ _\ i-P\ _\ j\right\rvert=1,\left\lvert\ i-j\right\rvert=2 $ です。 - j=4 j=4 のとき、$ \left\lvert\ P\ _\ i-P\ _\ j\right\rvert=2,\left\lvert\ i-j\right\rvert=3 $ です。 よって、j=2 j=2 のとき $ \left\lvert\ P\ _\ i-P\ _\ j\right\rvert+\left\lvert\ i-j\right\rvert=2 $ で最小となるので、D  1=2 D\ _\ 1=2 です。