#include <iostream> using namespace std; int main() { int N; cin >> N; int a[100][100]; int i; int j; int b[100][100]; for(i = 0; i < N; i++) { for(j = 0; j < N; j++) { cin >> a[i][j]; if(i == 0 && j == 0) { b[i][j] = a[i][j]; } else if(i == 0 && j != 0) { b[i][j] = b[i][j - 1] + a[i][j]; } else if(i != 0 && j == 0) { b[i][j] = b[i - 1][j] + a[i][j]; } else { b[i][j] = b[i][j - 1] + b[i - 1][j] - b[i - 1][j - 1] + a[i][j]; } } } int maxM = -127; int sum = 0; for(int x1 = 0; x1 < N ; x1++) { for(int y1 = 0; y1 < N; y1++) { for(int x2 = x1; x2 < N; x2++) { for(int y2 = y1; y2 < N; y2++) { if(x1 == 0 && y1 == 0) { sum = b[x2][y2]; } else if(x1 == 0 && y1 != 0) { sum = b[x2][y2] - b[x2][y1 - 1]; } else if(x1 != 0 && y1 == 0) { sum = b[x2][y2] - b[x1 - 1][y2]; } else { sum = b[x2][y2] - b[x1 - 1][y2] - b[x2][y1 - 1] + b[x1 - 1][y1 - 1]; } // cout << "sum = " << sum << endl; maxM = maxM > sum ? maxM : sum; } } } } cout << maxM << endl; } // 64 位输出请用 printf("%lld")