#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define MAXN 200005
int n;
int a[MAXN];
int b[MAXN];
vector <int> all;
vector <pii> evs;
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;
}

bool cmp(int x,int y)
{
    return b[x]<b[y];
}
bool cmp2(pii x,pii y)
{
    int t1 = (x.second==1)?a[x.first]:b[x.first];
    int t2 = (y.second==1)?a[y.first]:b[y.first];
    return t1<t2;
}

ll Resi(int N,int A[],int B[])
{
    for(int i = 0; i < N; i++)a[i]=A[i],b[i]=B[i],a[i]++,b[i]++;
    n=N;
    for(int i = 0; i < n; i++)
    {
        all.push_back(i);
    }
    sort(all.begin(),all.end(),cmp);
    ll ans = 0LL;
    for(int i = 0; i < n; i++)
    {
        evs.push_back({i,1});
        evs.push_back({i,-1});
    }
    sort(evs.begin(),evs.end(),cmp2);
    for(int i = 0; i < evs.size(); i++)
    {
        pii p = evs[i];
        if(p.second==1)
        {
            update(a[p.first],1);
            continue;
        }
        update(a[p.first],-1);
        ans += get(b[p.second]);
    }
    return ans;
}