#include <bits/stdc++.h>
using namespace std;
struct SegmentTree {
  int n;
  struct node {
    long long add, mn;
    node() {}
    node(long long v) : mn(v), add(0) {}
  };
  vector<node> tree;
  void push(int id, int l, int r) {
    if (tree[id].add != 0) {
      int m = (l + r) >> 1;
      apply(id << 1, l, m, tree[id].add);
      apply(id << 1 | 1, m + 1, r, tree[id].add);
      tree[id].add = 0;
    }
  }
  void apply(int id, int l, int r, long long add) {
    tree[id].mn += add;
    tree[id].add += add;
  }
  void pull(int id) {
    tree[id].mn = min(tree[id << 1].mn, tree[id << 1 | 1].mn);
  }
  SegmentTree(int n) : n(n), tree(4 * n) {}
  SegmentTree(const vector<long long> &v) {
    n = (int)v.size();
    tree.resize(4 * n);
    function<void(int, int, int)> build = [&](int id, int l, int r) {
      if (l == r) {
        tree[id] = v[l];
        return;
      }
      push(id, l, r);
      int m = (l + r) >> 1;
      build(id << 1, l, m);
      build(id << 1 | 1, m + 1, r);
      pull(id);
    };
    build(1, 0, n - 1);
  }
  void rangeadd(int id, int l, int r, int ql, int qr, long long add) {
    if (l > qr || r < ql) {
      return;
    }
    if (ql <= l && r <= qr) {
      apply(id, l, r, add);
      return;
    }
    push(id, l, r);
    int m = (l + r) >> 1;
    rangeadd(id << 1, l, m, ql, qr, add);
    rangeadd(id << 1 | 1, m + 1, r, ql, qr, add);
    pull(id);
  }
  void rangeadd(int ql, int qr, long long add) {
    rangeadd(1, 0, n - 1, ql, qr, add);
  }
};
void solve() {
  int N;
  cin >> N;
  vector<int> P(N), pos(N);
  for (int i = 0; i < N; i++) {
    cin >> P[i];
    P[i]--;
    pos[P[i]] = i;
  }
  vector<int> A(N);
  for (int i = 0; i < N; i++) {
    cin >> A[i];
  }
  vector<long long> init(N - 1);
  for (int i = 0; i < N - 1; i++) {
    init[i] = (i == 0 ? 0 : init[i - 1]) + A[i];
  }
  SegmentTree st(init);
  long long ans = A[0];
  for (int i = 0; i < N; i++) {
    st.rangeadd(0, pos[i] - 1, A[pos[i]]);
    st.rangeadd(pos[i], N - 2, -A[pos[i]]);
    ans = min(ans, st.tree[1].mn);
  }
  cout << ans << '\n';
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}
