#4693. 部门通知

部门通知

题目背景

某公司的组织架构是一棵包含 nn 个节点的二叉树,根节点是公司CEO(编号为1)。每个员工都有一个"已读"状态:0表示未读,1表示已读。

题目描述

HR会发送 qq 次部门通知,每次选择一个部门负责人,将该部门及其所有下属员工的"已读"状态反转(未读变已读,已读变未读)。

请你计算 qq 次通知全部发送完成后,每个员工的最终"已读"状态。

输入格式

第一行一个正整数 nn,表示公司员工总数。

第二行 (n1)(n-1) 个正整数,第 ii1in11\le i\le n-1)个数表示编号为 (i+1)(i+1) 的员工的直属上级编号,数据保证是一棵二叉树。

第三行一个长度为 nn01\texttt{01} 串,从左到右第 ii1in1\le i\le n)位表示编号为 ii 的员工初始"已读"状态。

第四行一个正整数 qq,表示通知次数。

接下来 qq 行每行一个正整数 aia_i1ain1\le a_i\le n),表示第 ii 次通知选择的部门负责人编号。

输出格式

输出一行一个长度为 nn01\texttt{01} 串,表示所有通知发送完成后每个员工的最终"已读"状态。

输入输出样例 #1

输入 #1

6
3 1 1 3 4
100101
3
1
3
2

输出 #1

010000

说明/提示

样例解释

第一次通知CEO(1号),所有员工状态反转:011010
第二次通知部门负责人3号,3号及其下属(3、5、6号)反转:000000
第三次通知员工2号,只有2号自己反转:010000

数据范围

子任务编号 得分 nn qq 特殊条件
11 2020 105\le 10^5 对于所有 i2i\ge 2,员工 ii 的上级编号为 i1i-1
22 4040 1000\le 1000
33 105\le 10^5

对于全部数据,保证有 n,q105n,q\le 10^5