#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,ans,k[100005],a[100005];
bool vis[100005],inq[100005];
vector<int>itt;
void dfs(int u){
if(inq[u]){
int z=itt.size()-1,mn=9999999999;
do{
mn=min(mn,a[itt[z]]);
z--;
}
while(itt[z]!=u);
ans-=mn;
return;
}
if(vis[u])return;
vis[u]=inq[u]=1;
itt.push_back(u);
dfs(k[u]);
inq[u]=0;
itt.pop_back();
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>k[i]>>a[i];
ans+=a[i];
}
for(int i=1;i<=n;i++){
if(!vis[i])dfs(i);
}
cout<<ans;
return 0;
}
72pts,呜呜呜······
是多减了还是少减了?