#include <bits/stdc++.h>
#define ll long long
#define all(v) v.begin(),v.end()
#define MASK(i) (1LL << (i))
#define ii pair<int,int>
#define fi first
#define se second
#define endl '\n'
#define forr(i,l,r,add) for(int i = l;i <= r; i = i + add)
#define fodd(i,l,r,sub) for(int i = l;i >= r ; i = i - sub)
template <typename T1, typename T2> bool minimize(T1 &a, T2 b) {if (a > b) {a = b; return true;} return false;}
template <typename T1, typename T2> bool maximize(T1 &a, T2 b) {if (a < b) {a = b; return true;} return false;}
using namespace std;
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
#define rand rd
long long Rand(long long l , long long h){
assert(l <= h);
return l + 1ll * rd() % (h - l + 1) * (rd() % (h - l + 1)) % (h - l + 1);
}
//////////////////////////////////////////////////////////// end of template ////////////////////////////////////////////////////////////
const int MAX = 1e5 + 5;
int n , a[MAX] , p[MAX];
struct node{
int w , x , y;
};
vector <node> adj;
bool cmp(node x, node y){
return x.w > y.w;
};
ll res[MAX * 2];
int nxt[MAX * 2][2];
int DSU[MAX * 2] , sum[MAX * 2];
int par(int u){
return u == DSU[u] ? u : DSU[u] = par(DSU[u]);
}
void INP(){
cin >> n;
forr(i , 2 , n , 1){
cin >> p[i];
}
forr(i , 1 , n , 1) cin >> a[i];
forr(i , 2 , n , 1){
adj.push_back({min(a[i] , a[p[i]]) , i , p[i]});
}
sort(all(adj) , cmp);
int cnt = n;
forr(i , 1 , n , 1) DSU[i] = i , sum[i] = 1;
for(auto wow : adj){
int w = wow.w , x = wow.x , y = wow.y;
x = par(x) , y = par(y);
//cout << w << ' ' << x << ' ' << y << endl;
sum[++cnt] = sum[x] + sum[y];
DSU[cnt] = cnt;
DSU[x] = cnt , DSU[y] = cnt;
res[x] += sum[y] * 1ll * w;
res[y] += sum[x] * 1ll * w;
nxt[cnt][0] = x , nxt[cnt][1] = y;
}
fodd(i , cnt , n + 1 , 1){
forr(j , 0 , 1 , 1){
int x = nxt[i][j];
res[x] += res[i];
}
}
forr(i , 1 , n , 1) cout << res[i] + a[i] << ' ';
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#define TASK ""
//freopen(TASK".inp" , "r" , stdin);
//freopen(TASK".out" , "w" , stdout);
INP();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSx2LmVuZCgpCiNkZWZpbmUgTUFTSyhpKSAoMUxMIDw8IChpKSkKI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBmb3JyKGksbCxyLGFkZCkgZm9yKGludCBpID0gbDtpIDw9IHI7IGkgPSBpICsgYWRkKQojZGVmaW5lIGZvZGQoaSxsLHIsc3ViKSBmb3IoaW50IGkgPSBsO2kgPj0gciA7IGkgPSBpIC0gc3ViKQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBib29sIG1pbmltaXplKFQxICZhLCBUMiBiKSB7aWYgKGEgPiBiKSB7YSA9IGI7IHJldHVybiB0cnVlO30gcmV0dXJuIGZhbHNlO30KdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4gYm9vbCBtYXhpbWl6ZShUMSAmYSwgVDIgYikge2lmIChhIDwgYikge2EgPSBiOyByZXR1cm4gdHJ1ZTt9IHJldHVybiBmYWxzZTt9Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbXQxOTkzNyByZChjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwojZGVmaW5lIHJhbmQgcmQKCmxvbmcgbG9uZyBSYW5kKGxvbmcgbG9uZyBsICwgbG9uZyBsb25nIGgpewoJYXNzZXJ0KGwgPD0gaCk7CglyZXR1cm4gbCArIDFsbCAqIHJkKCkgJSAoaCAtIGwgKyAxKSAqIChyZCgpICUgKGggLSBsICsgMSkpICUgKGggLSBsICsgMSk7Cn0KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZW5kIG9mIHRlbXBsYXRlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY29uc3QgaW50IE1BWCA9IDFlNSArIDU7CmludCBuICwgYVtNQVhdICwgcFtNQVhdOwpzdHJ1Y3Qgbm9kZXsKICAgIGludCB3ICwgeCAsIHk7Cn07CnZlY3RvciA8bm9kZT4gYWRqOwoKYm9vbCBjbXAobm9kZSB4LCBub2RlIHkpewogICAgcmV0dXJuIHgudyA+IHkudzsKfTsKCmxsIHJlc1tNQVggKiAyXTsKaW50IG54dFtNQVggKiAyXVsyXTsKaW50IERTVVtNQVggKiAyXSAsIHN1bVtNQVggKiAyXTsKCmludCBwYXIoaW50IHUpewogICAgcmV0dXJuIHUgPT0gRFNVW3VdID8gdSA6IERTVVt1XSA9IHBhcihEU1VbdV0pOwp9Cgp2b2lkIElOUCgpewogICAgY2luID4+IG47CiAgICBmb3JyKGkgLCAyICwgbiAsIDEpewogICAgICAgIGNpbiA+PiBwW2ldOwogICAgfQogICAgZm9ycihpICwgMSAsIG4gLCAxKSBjaW4gPj4gYVtpXTsKICAgIGZvcnIoaSAsIDIgLCBuICwgMSl7CiAgICAgICAgYWRqLnB1c2hfYmFjayh7bWluKGFbaV0gLCBhW3BbaV1dKSAsIGkgLCBwW2ldfSk7CiAgICB9CiAgICBzb3J0KGFsbChhZGopICwgY21wKTsKICAgIGludCBjbnQgPSBuOwogICAgZm9ycihpICwgMSAsIG4gLCAxKSBEU1VbaV0gPSBpICwgc3VtW2ldID0gMTsKICAgIGZvcihhdXRvIHdvdyA6IGFkail7CiAgICAgICAgaW50IHcgPSB3b3cudyAsIHggPSB3b3cueCAsIHkgPSB3b3cueTsKCiAgICAgICAgeCA9IHBhcih4KSAsIHkgPSBwYXIoeSk7CiAgICAgICAgLy9jb3V0IDw8IHcgPDwgJyAnIDw8IHggPDwgJyAnIDw8IHkgPDwgZW5kbDsKICAgICAgICBzdW1bKytjbnRdID0gc3VtW3hdICsgc3VtW3ldOwogICAgICAgIERTVVtjbnRdID0gY250OwogICAgICAgIERTVVt4XSA9IGNudCAsIERTVVt5XSA9IGNudDsKICAgICAgICByZXNbeF0gKz0gc3VtW3ldICogMWxsICogdzsKICAgICAgICByZXNbeV0gKz0gc3VtW3hdICogMWxsICogdzsKICAgICAgICBueHRbY250XVswXSA9IHggLCBueHRbY250XVsxXSA9IHk7CiAgICB9CiAgICBmb2RkKGkgLCBjbnQgLCBuICsgMSAsIDEpewogICAgICAgIGZvcnIoaiAsIDAgLCAxICwgMSl7CiAgICAgICAgICAgIGludCB4ID0gbnh0W2ldW2pdOwogICAgICAgICAgICByZXNbeF0gKz0gcmVzW2ldOwogICAgICAgIH0KICAgIH0KICAgIGZvcnIoaSAsIDEgLCBuICwgMSkgY291dCA8PCByZXNbaV0gKyBhW2ldIDw8ICcgJzsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgICNkZWZpbmUgVEFTSyAiIgogICAgLy9mcmVvcGVuKFRBU0siLmlucCIgLCAiciIgLCBzdGRpbik7CiAgICAvL2ZyZW9wZW4oVEFTSyIub3V0IiAsICJ3IiAsIHN0ZG91dCk7CiAgICBJTlAoKTsKICAgIHJldHVybiAwOwp9Cg==