#4503. Permutation Distance

0

Permutation Distance

Permutation Distance

题目描述

你被给出一个排列 P=(P1,P2,…,PN)P=(P _ 1,P _ 2,\ldots,P _ N),它是 (1,2,…,N)(1,2,\ldots,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) 得到的序列。 换句话说,长度为 NN 的序列 AA 当且仅当每个 i (1≤i≤N)i\ (1\leq i\leq N) 在 AA 中恰好出现一次时,AA 是 (1,2,…,N)(1,2,\ldots,N) 的一个置换。

输入格式

输入由标准输入给出,格式如下: NN P1P _ 1 P2P _ 2 …\ldots PNP _ N

输出格式

按 ii 的升序输出 Di (1≤i≤N)D _ i\ (1\leq i\leq 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×1052 \leq N \leq 2\times10^5 1≤Pi≤N (1≤i≤N)1 \leq P _ i \leq N\ (1\leq i\leq N) i≠j  ⟹  Pi≠Pji\neq j\implies P _ i\neq P _ j 输入中的所有数值均为整数。例如,对于 i=1i=1,

若 j=2j=2,我们有 ∣Pi−Pj∣=1\left\lvert P _ i-P _ j\right\rvert=1 且 ∣i−j∣=1\left\lvert i-j\right\rvert=1; 若 j=3j=3,我们有 ∣Pi−Pj∣=1\left\lvert P _ i-P _ j\right\rvert=1 且 ∣i−j∣=2\left\lvert i-j\right\rvert=2; 若 j=4j=4,我们有 ∣Pi−Pj∣=2\left\lvert P _ i-P _ j\right\rvert=2 且 ∣i−j∣=3\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。

标签: AtCoder|abc283F

来源

AtCoder|abc283F