棋盘变换
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有一个黑白相间大小为 \(n \times n\) 的棋盘,左上角 \((1,1)\) 的格子为白色。棋盘的每个格子上都有一个正整数,第 \(i\) 行第 \(j\) 列的正整数为 \(a_{i,j}\),定义棋盘的权值为所有白色格子上的整数之和减去黑色格子上的整数之和

现在你需要执行恰好一次操作:

选择第 \(x\) 行和第 \(y\) 列,同时将第 \(y\) 列的每个对应位置的数加上 \(x\) 行对应的数,即同时进行 \(a_{i,y} \leftarrow a_{i,y} + a_{x,i}\)

最大化棋盘的权值


输入描述:

第一行一个整数表示 n (2 \le n \le 10^3)
接下来 n 行,每行 n 个整数,第i行第j列表示棋盘上的整数a_{i,j}\ (1 \le a_{i,j} \le 10^3)

输出描述:

一行一个整数,表示答案
示例1

输入

复制
3
1 2 3
4 5 6
7 8 9

输出

复制
13

说明

在没执行操作时,棋盘的权值为5。
其中一种最优的操作是选择第3行和第1列,操作完后棋盘变为:
8 2 3
12 5 6
16 8 9
权值为13

示例2

输入

复制
3
522 575 426
445 772 81
447 629 497

输出

复制
1307

说明

其中一种最优的操作是选择第1行和第3列,操作完后棋盘变为:
522 575 948
445 772 656
447 629 923
权值为1307