#195. [R32D]还原树
[R32D]还原树
时空限制
1S/512M
题目描述
apiadu
曾经拥有一棵包含 个节点的有根树,节点编号为 到 。然而,这棵树的原始父子关系现在已经丢失。
幸运的是,apiadu
还保留着一个完整的 矩阵 ,其中 记录了原始树中节点 与节点 的最近公共祖先 (LCA)。
已知对于任意两个节点 和 ,它们的最近公共祖先 满足:
-
是 和 的共同祖先;
-
在所有共同祖先中, 的深度最大。
注意:每个节点也是其自身的祖先。
请你帮助 apiadu
根据这个矩阵,输出原来的有根树的每个节点的父亲,其中根节点的父亲设为 。保证树存在。
格式
输入格式
输入的第一行包含一个整数 ,表示树的节点数量。
接下来 行,每行包含 个整数。其中第 行第 列的数表示 。
输出格式
输出一行,包含 个用空格隔开的整数 ,其中 表示节点 的父节点(根节点的父亲为 )。
样例
样例输入 #1
4
1 1 1 1
1 2 1 2
1 1 3 1
1 2 1 4
样例输出 #1
-1 1 1 2
样例解释 #1
样例表示的树如下:

数据规模
对于 的数据,。
对于 的数据,。保证输入的矩阵是合法的,并且能够唯一确定一棵有根树的结构。
Related
In following contests: