import math
import numpy as np

def input_num():
	ls = input().strip().split(" ")
	return [int(e) for e in ls]

# 辞書のargmin
def dic_argmin(arg_dic):
	k_ls = list(arg_dic)
	v_ls = [arg_dic[k] for k in k_ls]
	min_idx = np.argmin(v_ls)
	return k_ls[min_idx]

# ダイクストラ法 (低速バージョン)
def slow_dijkstra(graph, start):
	# 距離とキューの初期化
	q = {}
	dist = {}
	for ni, node in enumerate(graph):	# niはnode index
		dist[ni] = math.inf
		q[ni] = 1	# キューに登録
	dist[start] = 0	# 初期位置は距離0
	# 最短距離の探索
	while True:
		# 探索終了条件
		if len(q) == 0: break
		# q残存中で最短距離ノードを取得
		min_ni = dic_argmin({ni: dist[ni] for ni in q})	# 辞書のargmin
		# 確定
		del q[min_ni]
		# 近隣の更新
		min_node = graph[min_ni]
		for neigh in min_node:
			neigh_len = min_node[neigh]	# その隣人までの距離
			# 対象はqに含まれるもののみ
			if neigh not in q: continue
			new_len = dist[min_ni] + neigh_len
			if new_len < dist[neigh]:
				dist[neigh] = new_len
	# 大人の事情により、すべての場所への距離を返す
	return dist

# # 例題
# graph = [
# 	{1:1, 2:10},
# 	{0:1, 2:1},
# 	{0:10, 1: 1}
# ]
# start = 0
# # ダイクストラ法 (低速バージョン)
# dist = slow_dijkstra(graph, start)
# # debug
# print(dist)

# row, col番号から座席番号を返す (範囲外の場合はNone)
def rc2num(r,c,n):
	if r < 0: return None
	if c < 0: return None
	if r >= n: return None
	if c >= n: return None
	return r*n + c

# n×nの観客の退去パスグラフの作成
def make_graph(n):
	graph = []
	for row in range(n):
		for col in range(n):
			d_dic = {}
			for dr,dc in [(1,0), (0,1), (-1,0), (0,-1)]:
				i = rc2num(row+dr,col+dc,n)	# row, col番号から座席番号を返す (範囲外の場合はNone)
				if i is None: continue
				d_dic[i] = 1
			graph.append(d_dic)
	return graph

# 観客が立ち去る (引数を汚染)
def gone_from_graph(graph, p):
	neigh_ls = list(graph[p])
	# 通るコストを0にする (正確にはそのセクションに入るコスト)
	for neigh in neigh_ls:
		graph[neigh][p] = 0

# 読み込み
n, = input_num()
p_ls = input_num()

# 以降、ことわりなき場合は0始まりのインデックスを用いる

# インデックスの読み替え
p_ls = [p-1 for p in p_ls]

# n×nの観客の退去パスグラフの作成
graph = make_graph(n)
# 端の観客番号を列挙 (隣人数を利用)
border_ls = [i for i,e in enumerate(graph)
	if len(e) != 4]

# 観客ひとりずつ計算
ans = 0
for p in p_ls:
	# 観客が立ち去る (引数を汚染)
	gone_from_graph(graph, p)
	# ダイクストラ法 (低速バージョン)
	dist = slow_dijkstra(graph, p)
	# 端の距離を見て最小値を採用
	temp_ans = min([dist[i] for i in border_ls])
	ans += temp_ans

print(ans)
