TLE了
#include<bits/stdc++.h>
#define kn 100086
using namespace std;
vector<int>a[kn];
int n,q;
char b[kn];
void dfs(int x){
if(b[x]=='0') b[x]='1';
else b[x]='0';
if(a[x].size()){
for(int i=0;i<n;i++){
int k=a[x][i];
dfs(k);
}
}
}
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
cin>>n;
for(int i=2;i<=n;i++){
int x;
cin>>x;
a[x].push_back(i);
}
for(int i=1;i<=n;i++) cin>>b[i];
cin>>q;
for(int i=1;i<=q;i++){
int k;
cin>>k;
dfs(k);
}
for(int i=1;i<=n;i++) cout<<b[i];
return 0;
}