循环矩阵移位以最大化对角线元素之和

Rust Hard loops

任务 «循环矩阵移位以最大化对角线元素之和»

给定一个大小为 N x N 的整数方阵。每次操作可以将任意一行向左或向右循环移动任意数量的位置,或者将任意一列向上或向下循环移动任意数量的位置。目标是通过任意次数的此类操作,最大化主对角线(从左上角到右下角)上元素的和。请找出可能的最大和。N 的取值范围为 1 到 100,矩阵元素为 -10^6 到 10^6 之间的整数。

输入格式

在第一行有一个整数N。接下来有N行,每行包含N个整数,以空格分隔。

输出格式

一个整数——主对角线上的最大和。

示例

示例 1

输入
5 1 -2 3 -1 2
输出
5

示例 2

输入
3 1 2 3 4 5 6 7 8 9
输出
18

示例 3

输入
2 3 4 1 2
输出
6
main.rs