#include <bits/stdc++.h>
#define pii pair<int,int>
#define x first
#define y second
using namespace std;

vector<pii> v;
int redom[100007];
int fen[200007];
int get(int idx)
{
    int res=0;
    while(idx)
    {
        res+=fen[idx];
        idx-=idx&-idx;
    }
    return res;
}
void update(int idx, int val)
{
    while(idx<=200006)
    {
        fen[idx]+=val;
        idx+=idx&-idx;
    }
}

long long Resi(int N, int *A, int *B)
{
    deque<int> DQ;
    for(int i=0;i<N;i++) v.push_back({A[i],i});
    sort(v.begin(),v.end());
    for(int i=0;i<v.size();i++) redom[i]=v[i].y;
    long long res=0;
    int sad=0;
    update(B[redom[0]],1);
    DQ.emplace_back(B[redom[0]]); 
    for(int i=1;i<v.size();i++)
    {
        int brm=0;
        //for(int j=0;j<i;j++) brv+=(B[redom[j]]>B[redom[i]]);
        brm=get(B[redom[i]]);
        if(brm>i-brm) DQ.emplace_back(B[redom[i]]);
        else DQ.emplace_front(B[redom[i]]);
        update(B[redom[i]],1);
    }
    for(int i=0;i<v.size();i++) res+=1LL*get(DQ[i]);
    return res;
}