#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> vec;
int ile[1000007];
int wart[1000007];
int ile_ma(int x)
{
    cout<<"duap"<<endl;
    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);
    }
    cout<<"asa"<<endl;
    for(int i=2;i<=n;i++)
    {
        int a,b;cin>>a>>b;
        vec[a].push_back(i);
        wart[i]=b;
    }
    ile_ma(1);
    cout<<"dasdadfADD"<<endl;
    for(int i=1;i<=n;i++)
    {
        cout<<ile[i]<<endl;
    }
}
