//zad1
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1000000 + 3;
int n;

int gl_obshto = 0;
struct Snowman{
    int obshto = 0;
    stack<int> topki;
};

Snowman snowmen[maxn];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n;

    int p, m;
    for(int i=1;i<=n;i++){
        cin >> p >> m;

        snowmen[i].topki = snowmen[p].topki;
        snowmen[i].obshto = snowmen[p].obshto;
        gl_obshto = gl_obshto + snowmen[i].obshto;

        if(m == 0){
            int t = snowmen[i].topki.top();
            snowmen[i].topki.pop();
            snowmen[i].obshto = snowmen[i].obshto - t;
            gl_obshto = gl_obshto - t;
        }else{
            snowmen[i].topki.push(m);
            snowmen[i].obshto = snowmen[i].obshto + m;
            gl_obshto = gl_obshto + m;
        }

    }

    cout << gl_obshto;

    return 0;
}
