#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
vector <int> order;
#define MAXN 200005
int a[MAXN];
int b[MAXN];
int n;
bool cmp(int x,int y)
{
    return a[x]<a[y];
}
ll bit[MAXN];
void update(int idx,int val)
{
    while(idx < MAXN)
    {
        bit[idx]+=val;
        idx+=idx&(-idx);
    }
}
ll get(int idx)
{
    ll ret = 0LL;
    while(idx > 0)
    {
        ret+=bit[idx];
        idx-=idx&(-idx);
    }
    return ret;
}

long long Resi(int N, int *A, int *B)
{
    for(int i = 0; i < N;i++)A[i]++,B[i]++;
    for(int i = 0; i < N;i++)a[i]=A[i],b[i]=B[i];
    n = N;
    for(int i = 0; i < N; i++)
    {
        order.push_back(i);
    }
    sort(order.begin(),order.end(),cmp);
    ll ans = 0LL;
    for(int j = 0; j < n; j++)
    {
        int i = order[j];
        update(b[i],1);
        ans += min(get(b[i]-1),j-get(b[i]-1));
    }
    return ans;
}