编程题
### 问题描述 阿坤老师是学校的数学老师,他特别喜欢让学生挑战一些有趣的数学问题。今天,他给学生带来了一个巨大的魔方。这个魔方的每个面都是一个 $N \times N$ 的方阵,每个小格子上都填有一个整数。 阿坤老师允许学生按行或者按列,将魔方的一个面上的所有行或者所有列,循环移动若干个位置。他希望学生通过移动行或列,使得主对角线(左上角到右下角)上的数字之和最大。 请问,应该如何移动,才能得到最大的主对角线数字之和? ### 输入格式 第一行包含一个整数 $N$,表示魔方的一个面上方阵的大小。 接下来的 $N$ 行,每行包含 $N$ 个整数,表示方阵的每个元素。 ### 输出格式 输出一个整数,表示最大可能的主对角线元素之和。 ### 样例输入 ``` 3 7 8 9 4 5 7 1 2 3 ``` ### 样例输出 ``` 16 ``` ### 说明 对于样例 $\begin{pmatrix}7 & 8 & 9\\\\4 & 5 & 7\\\\1 & 2 & 3\end{pmatrix}$ 我们可以将第 $3$ 行整体下移一行变换为 $\begin{pmatrix}1 & 2 & 3\\\\7 & 8 & 9\\\\4 & 5 & 7\end{pmatrix}$,此时主对角线为元素之和为 $1+8+7=16$。 ### 数据范围与约定 * $1 \leq N \leq 500$。 * 方阵中的元素为整数,范围在 $-10^5$ 到 $10^5$ 之间。
查看答案
赣ICP备20007335号-2