Permutation Distance
题目描述
你被给出一个排列 P=(P1,P2,…,PN),它是 (1,2,…,N) 的一个置换。
求对于所有 i (1≤i≤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,…,N) 得到的序列。
换句话说,长度为 N 的序列 A 当且仅当每个 i (1≤i≤N) 在 A 中恰好出现一次时,A 是 (1,2,…,N) 的一个置换。
输入格式
输入由标准输入给出,格式如下:
N
P1 P2 … PN
输出格式
按 i 的升序输出 Di (1≤i≤N),用空格分隔。
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
1≤Pi≤N (1≤i≤N)
i=j⟹Pi=Pj
输入中的所有数值均为整数。例如,对于 i=1,
若 j=2,我们有 ∣Pi−Pj∣=1 且 ∣i−j∣=1;
若 j=3,我们有 ∣Pi−Pj∣=1 且 ∣i−j∣=2;
若 j=4,我们有 ∣Pi−Pj∣=2 且 ∣i−j∣=3。
因此,当 j=2 时值最小,此时 $\left\lvert P _ i-P _ j\right\rvert+\left\lvert i-j\right\rvert=2$,所以 D1=2。
标签: AtCoder|abc283F
来源
AtCoder|abc283F