#pragma GCC target ("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include int a[1000][1000]; int v[1000][1000]; int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &a[i][j]); a[i][j]--; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (k > i + j) { v[a[i][j]][k] += k - i - j; } else if (k < i - j) { v[a[i][j]][k] += i - j - k; } } } } int ans = n * n * (n - 1) / 2; for (int i = 0; i < n; i++) { int d = 1e9; for (int j = 0; j < n; j++) { if (v[i][j] < d) d = v[i][j]; } ans += d; } printf("%d\n", ans); }