#12013. 剑指保研

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: root

题目描述

时值大三寒假,计划保研的 S 同学正在备考南京大学计算机系保研开放日机试。

有天他在看天津大学的保研机试考题:

给定一个 个点的有根树,点从 编号到 ( 号点为根),第 号点初始具有权值 。

现在你要进行 次操作,第 次操作选定一个点 和一个整数值 ,把第 号点为根的子树中所有点的权值都改为 。在执行完全部操作后,按照编号顺序给出所有点的权值。

S 同学高中没有学过竞赛,因此不太擅长解决算法题,于是他把这题告诉了高中有竞赛基础的好朋友 X 同学。

X 同学做完以后,感觉这道题对本科生来说或许太难了,可对于低年级中学生刚刚好。于是他希望你能编程解出这道题。

输入格式

第一行一个整数 ,含义如题。

第二行 个整数,第 个数表示 ,含义如题。

第三行 个整数,第 个数表示 号点的父亲。

第四行一个整数 ,含义如题。

接下来 行,第 行两个整数 ,含义如题。

输出格式

一行 个整数,第 个数表示第 号点的最终的权值。

样例

样例输入

5
1 4 5 2 3
1 1 1 2
3
5 2
3 9
2 7

样例输出

1 7 9 2 7

数据范围与提示

对于前 的数据,。

对于全部数据,,,。