#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> p2;
ll x[200005];
p2 t[800005],lazy[800005];
vector<p2> v1,v2;
vector<ll> v;
p2 add(p2 a,p2 b){
  return {a.first+b.first,a.second+b.second};
}
void update(ll v,ll tl,ll tr,ll pos,ll val){
  if(tl==tr){
    t[v]=add(t[v],{val,1});
    return;
  }
  ll tm=(tl+tr)/2;
  if(pos<=tm)
    update(2*v,tl,tm,pos,val);
  else
    update(2*v+1,tm+1,tr,pos,val);
  t[v]=add(t[2*v],t[2*v+1]);
}
p2 query(ll v,ll tl,ll tr,ll l,ll r){
  if(l>r)
    return {0,0};
  else if(l==tl&&r==tr)
    return t[v];
  ll tm=(tl+tr)/2;
  return add(query(2*v,tl,tm,l,min(r,tm)),query(2*v+1,tm+1,tr,max(l,tm+1),r));
}
int main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ll n,res=0;
  cin>>n;
  for(ll i=1;i<=n;i++)
    cin>>x[i];
  for(ll i=1;i<=n;i++){
    ll y;
    cin>>y;
    if(t>0)
      v1.push_back({x[i],y});
    else
      v2.push_back({x[i],-y});
    v.push_back(abs(y));
  }
  sort(v1.begin(),v1.end());
  sort(v2.begin(),v2.end());
  sort(v.begin(),v.end());
  map<ll,ll> m;
  for(ll i=0;i<n;i++)
    if(m.find(v[i])==m.end())
      m.insert({v[i],i+1});
  for(ll i=0;i<v1.size();i++){
    update(1,1,n,m[v1[i].second],v1[i].first);
    p2 a=query(1,1,n,1,m[v1[i].second]);
    res+=a.second*v1[i].first-a.first;
  }
  for(ll i=0;i<800005;i++)
    t[i]={0,0};
  for(ll i=0;i<v2.size();i++){
    update(1,1,n,m[v2[i].second],v2[i].first);
    p2 a=query(1,1,n,1,m[v2[i].second]);
    res+=a.second*v2[i].first-a.first;
  }
  for(ll i=0;i<v1.size();i++){
    p2 a=query(1,1,n,1,m[v1[i].second]);
    res+=a.second*v1[i].first-a.first;
  }
  cout<<res;
}