小红的X型矩阵
题号:NC277049
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

~~~~~~小红有一个大小为 n \times n 的 \texttt{0-1} 矩阵。小红可以对矩阵操作多次,每次可以任选其中其中一种操作:
~~~~~~~~~\bullet\操作一:选择矩阵的一个元素进行反转,即使得 0 变为 11 变为 0
~~~~~~~~~\bullet\操作二:将矩阵循环右移或循环下移一格。例如,\left(\begin{matrix}<br />1 & 0 & 1 \\<br />0 & 1 & 0 \\<br />1 & 0 & 0 \\<br />\end{matrix}\right) \ce{->[\text{右移}]} \left(\begin{matrix}<br />1 & 1 & 0 \\<br />0 & 0 & 1 \\<br />0 & 1 & 0 \\<br />\end{matrix}\right) \ce{->[\text{下移}]} \left(\begin{matrix}<br />0 & 1 & 0 \\<br />1 & 1 & 0 \\<br />0 & 0 & 1 \\<br />\end{matrix}\right)
\,\,\,\,\,\,\,\,\,\,小红想知道,最少需要多少次操作一,可以让矩阵变成一个 X 型矩阵。请你帮助小红解决这个问题。

\,\,\,\,\,\,\,\,\,\,一个矩阵被称为 X 型矩阵,当且仅当两条对角线上的数字全为 1 ,而其他位置都是 0a_{ii} = 1, a_{i, n - i + 1} = 1,其他都为 0 ),形如:
\left(\begin{matrix}<br />1 & 0 & \dots & 0 & 1 \\<br />0 & 1 & \dots & 1 & 0 \\<br />\vdots & \vdots & \ddots & \vdots & \vdots \\<br />0 & 1 & \dots & 1 & 0 \\<br />1 & 0 & \dots & 0 & 1\\<br />\end{matrix}\right)

输入描述:

\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n \left(1 \leq n \leq 1000\right) 代表矩阵的大小。
\,\,\,\,\,\,\,\,\,\,此后 n 行,第 i 行输入 n 个整数 a_{i,1},a_{i,2},\dots,a_{i,n} \left(0\le a_{i,j} \le 1\right) 代表矩阵中的元素。

输出描述:

\,\,\,\,\,\,\,\,\,\,在一行上输出一个整数,表示最少需要多少次操作一才能得到一个 X 型矩阵。
示例1

输入

复制
3
1 0 1
0 1 0
1 0 0

输出

复制
1

说明

\,\,\,\,\,\,\,\,\,\,选择 (3, 3),进行一次操作一,即可得到 X 型矩阵。
示例2

输入

复制
5
1 0 0 1 0
1 0 0 0 0
0 0 0 1 1
1 1 0 0 1
1 0 1 1 0

输出

复制
8