#include <algorithm>
#include <math.h>
//#include <iostream>

using namespace std;

struct Kutija
{
    int intime;
    int outtime;
    int id;
};

bool Kutija_comp(Kutija a,Kutija b)
{
    return a.intime<b.intime;
}

Kutija Time[200007];
Kutija Space[200007];
int spacel=100007;
int spaced=100008;

long long cost_napred(int t)
{
    long long acc=0;

    for(int i=spacel+1;i<spaced;i++)
    {
        if(Space[i].outtime<Time[t].outtime && Space[i].outtime>Time[t].intime){acc++;}
    }

    return acc;
}

long long cost_nazad(int t)
{
    long long acc=0;

    for(int i=spacel+1;i<spaced;i++)
    {
        if(Space[i].outtime>Time[t].outtime && Space[i].intime<Time[t].outtime){acc++;}
    }

    return acc;
}

long long Resi(int N, int *A, int *B)
{
    for(int i=0;i<N;i++)
    {
        Time[i].intime=A[i];
        Time[i].outtime=B[i];
        Time[i].id=i;
    }

    sort(Time,Time+N,Kutija_comp);

    long long cost=0;

    for(int i=0;i<N;i++)
    {
        long long f = cost_napred(i);
        long long b = cost_nazad(i);
        if(f<b)
        {
            cost+=f;
            Space[spacel]=Time[i];
            spacel--;
        }
        else
        {
            cost+=b;
            Space[spaced]=Time[i];
            spaced++;
        }


    }

    return cost;
}