#L3918. 「PA 2022」Chodzenie po linie

    ID: 3189 传统题 2000ms 1024MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>数据结构树状数组树结构并查集模拟排列分块区间划分链表合并双向处理数据结构优化

「PA 2022」Chodzenie po linie

题目描述

题目译自 PA 2022 Runda 5 Chodzenie po linie

Byteasar 是世界著名的马戏团演员,他擅长走钢丝,并在钢丝之间穿行。在他著名的表演中,马戏团帐篷的天花板下拉了 nn 条钢丝。如果我们俯瞰帐篷,并将其放置在坐标系中,第 ii (i=1,2,,ni=1,2,\ldots,n) 条钢丝连接点 (i,0)(i,0) 和点 (pi,1)(p_i,1),其中序列 p1,p2,,pnp_1, p_2, \ldots, p_n11nn 整数的一个排列。

Byteasar 站在其中一条钢丝上开始表演,并让观众给他一些钢丝的编号。他的目标是站在观众所说的那条钢丝上面。Byteasar 非常善于沿钢丝移动,但从一条钢丝移动到另一条钢丝是相当复杂的。因为他非常勇敢,但并不愚蠢,只有两条钢丝相交时,他才能从一条钢丝移到另一条钢丝上。所有的钢丝都悬挂在相似的高度,所以这样的移动总能成功,但这是相当累人的。出于这个原因,Byteasar 将选择一条不同钢丝之间交点个数最少的路线。唯一的例外是当以这种方式不可能到达目标钢丝的情况——在这种情况下,Byteasar 将礼貌地感谢观众并回到后台,从而不进行任何穿越。

然而,Byteasar 不确定他应该从哪根钢丝开始他的表演。对于这些钢丝的每一根,他都想知道对于观众所有可能的选择,他最少经过交点个数的和。帮他写一个程序来计算这些值。

输入格式

输入第一行一个整数 nn (1n2000001 \le n \le 200\,000),表示钢丝数量。

第二行 nn 个整数 p1,p2,,pnp_1, p_2, \ldots, p_n (1pin1 \le p_i \le n),保证对于任意 i,ji,j (iji \neq j),满足 pipjp_i \neq p_j,意义如题目描述。

输出格式

输出一行 nn 个整数,第 ii 个整数表示如果 Byteasar 从第 ii 根钢丝出发,对于观众所有可能的选择,他最少经过交点个数的和。

7
2 1 4 7 3 6 5

1 1 9 5 6 7 7

数据规模与约定

对于所有数据,保证:

1n200,0001 \le n \le 200,000

pp11nn 的一个排列

kick:实际数据达不到最差情况