#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
vector<int> a, c;
vector<array<ll, 2>> dp;
vector<vector<int>> adj, radj;
vector<bool> cycle;
void calcdp(int i) {
for (int j: radj[i]) {
calcdp(j);
dp[i][0] += dp[j][1];
dp[i][1] += min(dp[j][0], dp[j][1]);
}
if (a[i] != i) dp[i][1] += c[i];
}
void solve() {
cin >> n;
a.resize(n);
c.resize(n);
adj.resize(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
adj[i].push_back(--a[i]);
}
for (auto &i: c) cin >> i;
// find cycles
vector<bool> v(n);
cycle.assign(n, true);
for (int i = 0; i < n; i++) {
int j = i;
while (!v[j]) {
v[j] = true;
j = a[j];
}
for (int k = i; k != j; k = a[k]) {
cycle[k] = false;
}
}
radj.resize(n);
for (int i = 0; i < n; i++) {
if (!cycle[i]) {
radj[a[i]].push_back(i);
}
}
// dp
dp.resize(n);
for (int i = 0; i < n; i++) {
if (cycle[i]) calcdp(i);
}
// dp but for cycles
ll ans = 0;
vector<bool> v2(n);
for (int i = 0; i < n; i++) {
if (!cycle[i]) continue;
if (a[i] == i) {
ans += dp[i][1];
continue;
}
if (v2[i]) continue;
vector<int> cyc;
for (int j = i; !v2[j]; j = a[j]) {
v2[j] = true;
cyc.push_back(j);
}
int m = cyc.size();
// i is 0
array<ll, 2> curdp, prevdp;
prevdp = {dp[i][0], dp[i][1]};
for (int k: cyc) {
if (k == i) continue;
curdp[0] = prevdp[1] + dp[k][0];
curdp[1] = min(prevdp[0], prevdp[1]) + dp[k][1];
swap(curdp, prevdp);
}
ll cur0 = prevdp[1];
// i is 1
prevdp = {(ll)1e18, dp[i][1]};
for (int k: cyc) {
if (k == i) continue;
curdp[0] = prevdp[1] + dp[k][0];
curdp[1] = min(prevdp[0], prevdp[1]) + dp[k][1];
swap(curdp, prevdp);
}
ll cur1 = min(prevdp[0], prevdp[1]);
ans += min(cur0, cur1);
}
// ans
cout << ans << '\n';
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG47CnZlY3RvcjxpbnQ+IGEsIGM7CnZlY3RvcjxhcnJheTxsbCwgMj4+IGRwOwp2ZWN0b3I8dmVjdG9yPGludD4+IGFkaiwgcmFkajsKdmVjdG9yPGJvb2w+IGN5Y2xlOwoKdm9pZCBjYWxjZHAoaW50IGkpIHsKICAgIGZvciAoaW50IGo6IHJhZGpbaV0pIHsKICAgICAgICBjYWxjZHAoaik7CiAgICAgICAgZHBbaV1bMF0gKz0gZHBbal1bMV07CiAgICAgICAgZHBbaV1bMV0gKz0gbWluKGRwW2pdWzBdLCBkcFtqXVsxXSk7CiAgICB9CiAgICBpZiAoYVtpXSAhPSBpKSBkcFtpXVsxXSArPSBjW2ldOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG47CiAgICBhLnJlc2l6ZShuKTsKICAgIGMucmVzaXplKG4pOwogICAgYWRqLnJlc2l6ZShuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgYWRqW2ldLnB1c2hfYmFjaygtLWFbaV0pOwogICAgfQogICAgZm9yIChhdXRvICZpOiBjKSBjaW4gPj4gaTsKICAgIAogICAgLy8gZmluZCBjeWNsZXMKICAgIHZlY3Rvcjxib29sPiB2KG4pOwogICAgY3ljbGUuYXNzaWduKG4sIHRydWUpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgaiA9IGk7CiAgICAgICAgd2hpbGUgKCF2W2pdKSB7CiAgICAgICAgICAgIHZbal0gPSB0cnVlOwogICAgICAgICAgICBqID0gYVtqXTsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgayA9IGk7IGsgIT0gajsgayA9IGFba10pIHsKICAgICAgICAgICAgY3ljbGVba10gPSBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgcmFkai5yZXNpemUobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGlmICghY3ljbGVbaV0pIHsKICAgICAgICAgICAgcmFkalthW2ldXS5wdXNoX2JhY2soaSk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIGRwCiAgICBkcC5yZXNpemUobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGlmIChjeWNsZVtpXSkgY2FsY2RwKGkpOwogICAgfQoKICAgIC8vIGRwIGJ1dCBmb3IgY3ljbGVzCiAgICBsbCBhbnMgPSAwOwogICAgdmVjdG9yPGJvb2w+IHYyKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoIWN5Y2xlW2ldKSBjb250aW51ZTsKICAgICAgICBpZiAoYVtpXSA9PSBpKSB7CiAgICAgICAgICAgIGFucyArPSBkcFtpXVsxXTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2MltpXSkgY29udGludWU7CgogICAgICAgIHZlY3RvcjxpbnQ+IGN5YzsKICAgICAgICBmb3IgKGludCBqID0gaTsgIXYyW2pdOyBqID0gYVtqXSkgewogICAgICAgICAgICB2MltqXSA9IHRydWU7CiAgICAgICAgICAgIGN5Yy5wdXNoX2JhY2soaik7CiAgICAgICAgfQogICAgICAgIGludCBtID0gY3ljLnNpemUoKTsKCiAgICAgICAgLy8gaSBpcyAwCiAgICAgICAgYXJyYXk8bGwsIDI+IGN1cmRwLCBwcmV2ZHA7CiAgICAgICAgcHJldmRwID0ge2RwW2ldWzBdLCBkcFtpXVsxXX07CiAgICAgICAgZm9yIChpbnQgazogY3ljKSB7CiAgICAgICAgICAgIGlmIChrID09IGkpIGNvbnRpbnVlOwogICAgICAgICAgICBjdXJkcFswXSA9IHByZXZkcFsxXSArIGRwW2tdWzBdOwogICAgICAgICAgICBjdXJkcFsxXSA9IG1pbihwcmV2ZHBbMF0sIHByZXZkcFsxXSkgKyBkcFtrXVsxXTsKICAgICAgICAgICAgc3dhcChjdXJkcCwgcHJldmRwKTsKICAgICAgICB9CiAgICAgICAgbGwgY3VyMCA9IHByZXZkcFsxXTsKCiAgICAgICAgLy8gaSBpcyAxCiAgICAgICAgcHJldmRwID0geyhsbCkxZTE4LCBkcFtpXVsxXX07CiAgICAgICAgZm9yIChpbnQgazogY3ljKSB7CiAgICAgICAgICAgIGlmIChrID09IGkpIGNvbnRpbnVlOwogICAgICAgICAgICBjdXJkcFswXSA9IHByZXZkcFsxXSArIGRwW2tdWzBdOwogICAgICAgICAgICBjdXJkcFsxXSA9IG1pbihwcmV2ZHBbMF0sIHByZXZkcFsxXSkgKyBkcFtrXVsxXTsKICAgICAgICAgICAgc3dhcChjdXJkcCwgcHJldmRwKTsKICAgICAgICB9CiAgICAgICAgbGwgY3VyMSA9IG1pbihwcmV2ZHBbMF0sIHByZXZkcFsxXSk7CiAgICAgICAgYW5zICs9IG1pbihjdXIwLCBjdXIxKTsKICAgIH0KCiAgICAvLyBhbnMKICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZSgwKS0+c3luY193aXRoX3N0ZGlvKDApOwogICAgc29sdmUoKTsKfQ==