#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> vec;
int ile[1000007];
int wart[1000007];
int ile_ma(int x)
{
int c=vec[x].size();
if(ile[x]>0)
{
return ile[x];
}
if(c==0)
{
ile[x]=wart[x];
return 1;
}
int wyn=wart[x];
for(auto a:vec[x])
{
wyn+=ile_ma(a);
}
ile[x]=wyn;
return wyn;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;cin>>n;
if(n==1)
{
cout<<0;
return 0;
}
for(int i=0;i<n;i++)
{
vector<int> a;vec.push_back(a);
}
for(int i=2;i<=n;i++)
{
int a,b;cin>>a>>b;
vec[a].push_back(i);
wart[i]=b;
}
cout<<ile_ma(1);
for(int i=1;i<=n;i++)
{
cout<<ile[i]<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPHZlY3RvcjxpbnQ+PiB2ZWM7CmludCBpbGVbMTAwMDAwN107CmludCB3YXJ0WzEwMDAwMDddOwppbnQgaWxlX21hKGludCB4KQp7CiAgICBpbnQgYz12ZWNbeF0uc2l6ZSgpOwogICAgaWYoaWxlW3hdPjApCiAgICB7CiAgICAgICAgcmV0dXJuIGlsZVt4XTsKICAgIH0KICAgIGlmKGM9PTApCiAgICB7CiAgICAgICAgaWxlW3hdPXdhcnRbeF07CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICBpbnQgd3luPXdhcnRbeF07CiAgICBmb3IoYXV0byBhOnZlY1t4XSkKICAgIHsKICAgICAgICB3eW4rPWlsZV9tYShhKTsKICAgIH0KICAgIGlsZVt4XT13eW47CiAgICByZXR1cm4gd3luOwp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBpbnQgbjtjaW4+Pm47CiAgICBpZihuPT0xKQogICAgewogICAgICAgIGNvdXQ8PDA7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIHZlY3RvcjxpbnQ+IGE7dmVjLnB1c2hfYmFjayhhKTsKICAgIH0KICAgIGZvcihpbnQgaT0yO2k8PW47aSsrKQogICAgewogICAgICAgIGludCBhLGI7Y2luPj5hPj5iOwogICAgICAgIHZlY1thXS5wdXNoX2JhY2soaSk7CiAgICAgICAgd2FydFtpXT1iOwogICAgfQogICAgY291dDw8aWxlX21hKDEpOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgY291dDw8aWxlW2ldPDxlbmRsOwogICAgfQp9Cg==