#P5612. 排列之间的距离

排列之间的距离

题面翻译

给定一个 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

样例 #1

样例输入 #1

4
3 2 4 1

样例输出 #1

2 2 3 3

样例 #2

样例输入 #2

7
1 2 3 4 5 6 7

样例输出 #2

2 2 2 2 2 2 2

样例 #3

样例输入 #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

提示

制約

  • 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