#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const int N = 1e5 + 50;
const int M = 1e5 + 50;
const int Mod = 1e9 + 7;
#define int long long
inline int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
int n;
int p[N], v[N];
bool vis[N];
int ans = 0;
int dfs(int u, int Min)
{
vis[u] = 1;
if (vis[p[u]])
return min(Min, v[u]);
return dfs(p[u], min(Min, v[u]));
}
signed main()
{
n = read();
for (int i = 1; i <= n; ++i)
p[i] = read(), v[i] = read(), ans += v[i];
for (int i = 1; i <= n; ++i)
{
if (!vis[i])
{
ans -= dfs(i, Mod);
}
}
printf("%lld\n", ans);
return 0;
}