//                                       _____   ---===--   _____
//                             .    ''                              ``  -.
//                      .  '                                                  `   .
//                   .'       _ _  _                                                  ` .
//                 /  ' '                 ''    -- .                                       `\
//                |                                      ` -.                                /\
//                 \ ______  -----   ____                       ` -.                        .'|_
//                  \\mmmNNNNNNNNNNNNmm==____`   - . _                `.`  -  .......  - '  . ' |
//                   |"""""""""""""MNNNNNNNNNNNNNNNm==___ `  -  . _     \   .---====-- .. '     |
//                   -''''''''''' `   -  __   '"""MMNNNNNNNNNNNmm===______ "|       __  | | NN) (
//                 / ::::::::::::::::::::::::::`  -  .  __ '"""MNNNNNNNNNNNNN\   (NNN*  | |__...J
//               /  ::::::::::::::::::::::::::::::::::::::::::` -  .  __  '"""\       . ''|      ` .
//             /    :::::::::::::::::::::::::::::::::::::::::::::::::::  '''' / -- ' /  |::\  \ ,)   `.
//            /    ::'   ':::::::::/:::::::::::::::::::::''::  :::   ::::::::/    ( /   |:::\   "" _. ''
//           /    ::'   :/:'  ::  /    :::::    :::     :. .::\:::::::::::::< _        /::::::\  /\
//          / .:::::::::/::...:. /     :::::....:::::::::::::::\:::::::::::::::\:`:-  /::::\::::`:N\
//         / ::/:::::::/::::::::/::::::::::::::::::::::::::::::::\:::::::\::::::|::::|::::::|::::::N\
//        | ::|:::::::|:::::::/ |:::::::::/|:::::::::/:::::\::::::\:::::::\:::::|::::|:::::::|::::::N|
//        | ::|:::::::|::::::/  |:|::::::| |::::::::| |:::::\::::::\:::::::|:::/:::::]::::::::::::::N\
//        | ::|:::::::|:::::/   |:|::::::| |::::::::|  \:::::\\:::::\::::::|::/:::::/:::::::/:::::::NN|
//        | ::|:::::::|::::|     \:\:::::|  \::::::::\ --\::::\_\::::|:::::|:/:::::/:::::::/::::::::NN|
//         |::|:::::::|::::|-'""""\:\:::|    \::\-::::\   `-|\:\  `-:|:::::|:::::::::::::/:::::|:::::N|
//         |::|::::\::\::\::|  ___ \ `-_:\     "-\ `-__  --'''___;_   |::::|:::::::::.m'\:::::::|::::N|
//          \::\::::|:::\:\--\___  `- ` '"        ""   ggmm@@@@@@@@@m ):::/:::::::. @@XXL|:::::::\:::N|
//           \::\::::\:::\mN**@@@@@mm                  \    |::TT:::/::::/N:::::/ @@@@XXL|::::::::\::NN\
//            \N:NN\:::-.::\  |::TT::|                  ` . _\:::::/ /::7NN:::/::|@@@@XXL|:::::::::\::NN\
//             \NNN\\'n-:`N\ - \::::/                             / / /NN::::/:::|@@@XXL/:::::::::::\::NN\
//              `"NN\ `-NN''\                                    _7 "  \:::::\::|LXXXLL/:::::::::::::`.NNN\
//                `-NN\ \NNNN\                                          |\::::\:|<LLLL/\:::::::::::::\::`NN\
//                    ` '|NNNN\          '                             /NNN`m- >NN|::\NN\:::::\:::::::\:::::`.
//                       |NNNNNN\                                   .i'/:::::::/NN|:::\NN\::::::\:::::::\::::::`;-.
//                      |NNNNNN/:/`.          .__.              . '  |/::/::::/NNN|:::::\N\:::::::`.:::::`Nn::::::::`m-.
//                     /NNNNN/:n/:::|` .                    . '      /::y::::/NN::N|:::\::\|:::::::::`.:::::"-.::::::::::`m.
//                    /NNN.':://::::|NNNN/` .          . '          /:::/:::/"""">NN\::::\:::`.:::::.:::::::::::`-.:::::::::)
//                  /."':::.'N::::::|NNN/::\::__`'''\              /::::::::|@@@@||NN\::::::::::`.::::` .::::::::::::`.-.::/
//              -'::::::m':/:::::::/NN/:::::|ffffrrrrmmmmmmmm@@@@@|:::::::\N|@@@| \:\N\::::::::::::`.:::::`.::::::::::::::::`..
//           /::::::m'::.':::::/::/"':::::/ /\fffffffffffff@@@@@@@|::::::::\|@@@| N`.\NN`.::::::::::::`.:::::`-.::::::::.:::::::` .
//           \::::mT:':::::::/:.':::::::,'/MMM\N.   ffffffff    @@|:::::::::\@@/.  NNNNNNNNN`m.:::::::::"=::::::"Nn:::::::`.::::::::`.
//          -':':::::::::::.':/:::::::://MMM. ""*fffffffffffffffff@\:::::::::\"   gg`  -  . NNNN\`n.::::::".::::::"N:::::::"n::::::::|
//    .- ':::.:::::::.':.':::/::::::::/- ' Mng      """"""""""      `\::|::::::\M*",,,,,,,,,,,,` .\\N`.::::|:::::::|::::::::|:::::::/
// /':::::.'::::::.'::/::::n/::::::::|,,,,,, "**++g,,________,,,,,,mmm\::\:::::::\,,,,,,,,,,,,gnNN" ` .N)::/::.:::|::::::|::N|:::.''
//|:::. '::::::n":::/":::N" \:\::::::|,,,,,,,,,,,,,**/NN/*******,,,,,,,,`.|`.:::::|,,,,,, gnN*."'       \:.:::|::::\::::::\nN::/
//.|::::::::,n":::,":::,N    \:\:::::\,,,,,,,,,,,,,,/NN/,,,,,,,,,,,,,,,,,,|   `.  |ggnN**"   /           |::::|::::::::::::\Nm:|

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> P;

#define p_ary(ary,a,b) do { cout << "["; for (int count = (a);count < (b);++count) cout << ary[count] << ((b)-1 == count ? "" : ", "); cout << "]\n"; } while(0)
#define p_map(map,it) do {cout << "{";for (auto (it) = map.begin();;++(it)) {if ((it) == map.end()) {cout << "}\n";break;}else cout << "" << (it)->first << "=>" << (it)->second << ", ";}}while(0)

template<typename T1,typename T2>ostream& operator<<(ostream& os,const pair<T1,T2>& a) {os << "(" << a.first << ", " << a.second << ")";return os;}

const char newl = '\n';

int main() {
    int n,d[4] = {-1,0,1,0};
    cin >> n;
    vector<int> p(n*n);
    vector<vector<int>> dist(n,vector<int>(n));
    vector<vector<bool>> used(n,vector<bool>(n,false));
    for (int i = 0;i < n*n;++i) scanf("%d",&p[i]),p[i]--;
    for (int i = 0;i < n;++i) for (int j = 0;j < n;++j) dist[i][j] = min({i,j,n-i-1,n-j-1});
    int ans = 0;
    for (int i = 0;i < n*n;++i) {
        int u = p[i]/n,v = p[i]%n;
        ans += dist[u][v];
        used[u][v] = true;
        queue<P> que;
        que.push({u,v});
        while (!que.empty()) {
            P t = que.front();que.pop();
            for (int j = 0;j < 4;++j) {
                int x = t.first+d[j],y = t.second+d[j^1];
                if (x < 0 || x >= n || y < 0 || y >= n) continue;
                if (used[t.first][t.second] && dist[x][y] > dist[t.first][t.second]) {
                    dist[x][y] = dist[t.first][t.second];
                    que.push({x,y});
                }
                if (!used[t.first][t.second] && dist[x][y] > dist[t.first][t.second]+1) {
                    dist[x][y] = dist[t.first][t.second]+1;
                    que.push({x,y});    
                }
            }
        }
    }
    cout << ans << endl;
}

Measured memory_bytes: 5308