#include<bits/stdc++.h>

using namespace std;

deque<pair<int,int> > sortirano;
vector<pair<int,int> > red;
vector<int> valjda;
long long resenje;
int pok=0;
int pom;
int velicina;

int binarna(int pocetak,int kraj,int val)
{
    if(pocetak==kraj)
        return pocetak;
    int mid=kraj+(pocetak-kraj)/2;
    if(valjda[mid]>=val)
    {
        return binarna(pocetak,mid,val);
    }
    else return binarna(mid+1,kraj,val);
}

long long Resi(int N, int *A, int *B)
{
	sortirano.resize(N);
	for(int i=0;i<N;i++)
    {
        sortirano[i].first=A[i];
        sortirano[i].second=B[i];
        red.push_back(make_pair(A[i],1));
        red.push_back(make_pair(B[i],0));
    }
    sort(sortirano.begin(),sortirano.end());
    sort(red.begin(),red.end());
    for(int i=0;i<2*N;i++)
    {
        if(red[i].second==1)
        {
            if(valjda.empty())
            {
                valjda.push_back(sortirano[0].second);
                sort(valjda.begin(),valjda.end());
                sortirano.pop_front();
                velicina++;
            }
            else
            {
                pok=0;
                while(pok!=valjda.size() && valjda[pok]<sortirano[0].second)
                    pok++;
                pom=pok;
                while(pok!=valjda.size() && valjda[pok]==sortirano[0].second)
                    pok++;
                pom=min(pom,velicina-pok);
                resenje+=pom;
                valjda.push_back(sortirano[0].second);
                sort(valjda.begin(),valjda.end());
                sortirano.pop_front();
                velicina++;
            }
        }
        else
        {
            valjda.erase(valjda.begin());
            velicina--;
        }

    }
    return resenje;
}