luogu#B3975. [语言月赛 202405] 最大的和

    ID: 4991 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 2 上传者: 标签>模拟2024O2优化循环结构数组语言月赛

[语言月赛 202405] 最大的和

题目描述

小 S 喜欢连在一起的数字,如果这些数字的和很大就更好了。

所以她现在要给你一个 nnnn 列的网格 AA,第 ii 行第 jj 列上填有一个整数 Ai,jA_{i, j}

接下来你可以在 AA 上任取一行一列一条与任意对角线平行只经过网格交叉点直线(注意,不是线段),满足经过至少一个数字,且经过的数字之和最大。

如果对上面的表述有疑惑,请参考样例解释辅助理解。

你需要告诉小 S 这个最大的数字之和。

输入格式

输入共 n+1n+1 行。

第一行,一个正整数 nn,表示方阵的行数、列数。
接下来 nn 行,每行 nn 个用空格隔开的整数,其中第 ii 行第 jj 个整数表示 Ai,jA_{i, j}

输出格式

输出一行一个整数,表示最大的数字之和。

3
1 1 1
2 2 2
3 3 3

9

3
-1 1 2
4 0 3
1 9 2

13

3
-1 -1 -1
-1 -1 -1
-1 -1 -1

-1

3
-100 -10 -100
-10 99999 -10
-100 -10 -100

99979

提示

样例 1 解释

对于样例 11,不难看出第 33 行数字之和最大,有 3+3+3=93 + 3 + 3 = 9

样例 2 解释

对于样例 22,数字之和最大的,满足条件的线如下所示:

此时有 4+9=134 + 9 = 13

注意,因为要求与对角线平行的直线只能经过网格交点,所以并不能出现同时取 4,1,94, 1, 9 或同时取 4,1,9,24, 1, 9, 2 这样的情况。

样例 33 解释

取某条只经过一个 1-1 的直线即为最大。注意,不可以一个数字都不选。

样例 44 解释

显然,取斜着的线一定不优,只能选择中间那一行或一列,答案是 10+9999910=99979-10 + 99999 - 10 = 99979

数据范围

对于前 30%30 \% 的数据,保证 A1,1A_{1, 1}An,nA_{n, n} 的值为网格中唯一的非负整数。
对于另 20%20 \% 的数据,保证每一行数字相同,且最后一行中的数字之和为最大值
对于另 20%20 \% 的数据,保证每一行数字相同,网格中不存在负数。
对于 100%100 \% 的数据,保证 $1 \leq n \leq 2 \times 10^3, -10^5 \leq A_{i, j} \leq 10^5$。