小A所在的企业中,每个员工在请求授权的时候都需要向他上面的某一级领导提出申请。
为了避免混乱,一个员工只会向他的上级领导中技术能力与他最相近的那位领导提出申请。现在小A想知道每个人的申请对象是谁。
小A所在企业的组织架构可以用一棵有根树来描述。即除了树根对应的最高领导以外,每个人都有唯一的一个直系领导。
同时,每个员工的技术能力均可以用一个正整数表示,称为技术等级。两个人之间的技术能力越近则他们的技术等级之差的绝对值越小。
第一行有一个正整数 n (2 ≤ n ≤ 100000)。n 代表小 A所在企业中的员工数量。
第二行有 n - 1个正整数,第i个数 fi (i < fi ≤ n)代表编号为i的员工的直属领导是fi,编号为n的员工是没有直属领导的最高级领导。
第三行有n个正整数,第i个数ai代表编号为i的员工的技术等级。技术等级的范围在1到n之间。
在一行中输出 n-1 个以空格分隔的正整教。第i个代表编号为i的员工请求授权时的申请对象。
如果某个员工有多个技术能力与他最相近的上级领导,则他会选择在组织架构上离他最近的那一个。
6 3 3 5 5 6 2 5 4 1 3 6
5 3 5 5 6
员工 2 的直属上级是员工 3,但员工 3 的技术能力与员工 6 的技术能力都与员工 2 的技术能力 5 相差 1。由于员工 3 在组织架构中距离员工 2 更近,员工 2 会向员工 3 提出申请。
时间限制:c/c++/go:1s;java:12s;其他语言:7s。
选择合适的字体大小
选择合适的主题