#include <bits/stdc++.h>
using namespace std;
void solve() {
  int N;
  cin >> N;
  vector<int> A(N), T(N);
  for (int i = 0; i < N; i++) {
    cin >> A[i];
  }
  for (int i = 0; i < N; i++) {
    cin >> T[i];
  }
  vector<int> ord(N);
  iota(ord.begin(), ord.end(), 0);
  sort(ord.begin(), ord.end(),
       [&](const int &i, const int &j) { return A[i] < A[j]; });
  multiset<int> Ts;
  int pnt = 0, mn;
  long long ans = 0;
  long long sum = 0;
  while (pnt < N || !Ts.empty()) {
    if (Ts.empty()) {
      mn = A[ord[pnt]];
    }
    while (pnt < N && A[ord[pnt]] == mn) {
      sum += T[ord[pnt]];
      Ts.insert(T[ord[pnt]]);
      pnt++;
    }
    sum -= *Ts.rbegin();
    Ts.erase(Ts.find(*Ts.rbegin()));
    ans += sum;
    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;
}
