#include <bits/stdc++.h>

using namespace std;
int n;

int najmanjeResenje = INT_MAX;
vector<vector<bool>> v;

void stampaj(vector <vector<bool>> &v)
{
    for(unsigned int i = 0; i < v.size(); i++)
    {
        for(unsigned j = 0; j < v[i].size(); j++)
        {
            cout << v[i][j] << " ";
        }

        cout << endl;
    }

    cout << endl;
}

int permutacijaZaPocetak(vector <vector<bool>> &v)
{
    int brojac = 0;

    for(int i = 0; i < n; i++)
    {
        int ima = 0;

        for(int j = 0; j < n; j++)
        {
            if(v[j][i] == true)
            {
                ima++;
            }
        }

        if(ima == 0)
        {
            for(int x = i + 1; x < n; x++)
            {
                bool pass = false;

                for(int y = 0; y < n; y++)
                {
                    if(v[y][x] == true)
                    {
                        brojac += abs(x - i);
                        swap(v[y][x], v[y][i]);
                        pass = true;
                        break;
                    }
                }

                if(pass == true)
                {
                    break;
                }
            }
        }

        else if(ima >= 2)
        {
            for(int j = 0; j < n; j++)
            {
                if(v[j][i] == true)
                {
                    for(int nesto = i + 1; nesto < n; nesto++)
                    {
                        if(v[j][nesto] == true)
                        {
                            continue;
                        }

                        else
                        {
                            swap(v[j][i], v[j][nesto]);
                            brojac += nesto - i;
                            ima--;
                            break;
                        }
                    }
                }

                if(ima == 1)
                {
                    break;
                }

            }
        }
    }

    return brojac;
}

bool jelMoze(int x, int y, vector <vector<bool>> &v2)
{
    for(int i = 0; i < x; i++)
    {
        //cout << v[i][y] << endl;

        if(v2[y][i] == true)
        {
            return false;
        }
    }

    return true;
}

void resi(vector <vector<bool>> &v2, int x, int brojac) //mozda bude greska zato sto je referenca
{
    if(x == n)
    {
        if(brojac < najmanjeResenje)
        {
            najmanjeResenje = brojac;
        }

        return;
    }

    for(int i = 0; i < n; i++)
    {
        //stampaj(v2);

        if(jelMoze(x, i, v2))
        {
            bool jelSamMenjao = false;
            int dodaj = -1;

            for(int j = 0; j < n; j++)
            {
                if(v[j][x] == true)
                {
                    dodaj = abs(i - j);
                }

                if(v2[j][x] == true)
                {
                    swap(v2[j][x], v2[i][x]);
                    jelSamMenjao = true;
                }

                if(dodaj != -1 && jelSamMenjao == true)
                {
                    resi(v2, x + 1, brojac + dodaj);
                    break;
                }
            }
        }
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> n;
    v.resize(n);

    for(int i = 0; i < n; i++)
    {
        v[i].resize(n, false);
    }

    for(int i = 0; i < n; i++)
    {
        int x, y;
        cin >> x >> y;
        v[x - 1][y - 1] = true;
    }

    //stampaj(v);
    int resenje = permutacijaZaPocetak(v); //ispravi ovo resenje pod obavezno

    //cout << resenje << endl;

    //stampaj(v);
    vector <vector<bool>> v2 = v;
    resi(v2, 0, resenje);
    cout << najmanjeResenje << endl;

    return 0;
}