#include <bits/stdc++.h>
using namespace std;
int cnt[205];
struct node {
  int l, d;
} a[100050];
int cmp(node a, node b) { return a.l > b.l; }
int main() {
  int n, sum;
  memset(cnt, 0, sizeof(cnt));
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].l);
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].d);
    cnt[a[i].d]++;
  }
  sort(a, a + n, cmp);
  int minx = 0x3f3f3f3f;
  int aa = 0;
  sum = 0;
  for (int i = 0; i < n; i++) {
    sum += aa;
    cnt[a[i].d]--;
    aa = 0;
    aa += a[i].d;
    int ans = 1;
    int t = i + 1;
    while (t < n && a[i].l == a[t].l) {
      cnt[a[t].d]--;
      aa += a[t].d;
      ans++;
      t++;
    }
    int ant = n - i - ans - ans + 1;
    int kk = sum;
    if (ant <= 0) {
      minx = min(minx, kk);
      i = t - 1;
      continue;
    }
    for (int k = 1; k <= 200; k++) {
      if (cnt[k] > 0) {
        if (ant < cnt[k]) {
          kk += ant * k;
          ant = 0;
        } else {
          kk += cnt[k] * k;
          ant -= cnt[k];
        }
      }
      if (ant == 0) break;
    }
    if (ant) continue;
    minx = min(kk, minx);
    i = t - 1;
  }
  printf("%d\n", minx);
  return 0;
}
