【题目描述】
import java.util.Scanner;
class Main{
static int N = 110;
public static void main(String args[]){
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
int[][] f = new int[N][N];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++) {
//同一列的前缀和
f[i][j] = reader.nextInt();
f[i][j] += f[i - 1][j];
}
int ans = Integer.MIN_VALUE;
for(int i = 1; i <= n; i ++){//枚举上边界
for(int j = i; j <= n; j++){//枚举下边界
int last = 0;
for(int k = 1; k <=n; k ++){
last = Math.max(last,0) + f[j][k] - f[i - 1][k];
ans = Math.max(ans,last);
}
}
}
System.out.println(ans);
}
}