27 lines
952 B
C++
27 lines
952 B
C++
|
|
#include <bits/stdc++.h>
|
||
|
|
using namespace std;
|
||
|
|
const int N = 51;
|
||
|
|
int n, m, f[N][N][N][N], a[N][N], x;
|
||
|
|
int main() {
|
||
|
|
int i1, i2, j1, j2;
|
||
|
|
cin >> n >> m;
|
||
|
|
for (int i = 1; i <= n; i++)
|
||
|
|
for (int j = 1; j <= m; j++) cin >> a[i][j];
|
||
|
|
|
||
|
|
for (i1 = 1; i1 <= n; i1++)
|
||
|
|
for (j1 = 1; j1 <= m; j1++)
|
||
|
|
for (i2 = 1; i2 <= n; i2++)
|
||
|
|
for (j2 = 1; j2 <= m; j2++) {
|
||
|
|
int x = 0;
|
||
|
|
x = max(x, f[i1][j1 - 1][i2][j2 - 1]);
|
||
|
|
x = max(x, f[i1 - 1][j1][i2 - 1][j2]);
|
||
|
|
x = max(x, f[i1][j1 - 1][i2 - 1][j2]);
|
||
|
|
x = max(x, f[i1 - 1][j1][i2][j2 - 1]);
|
||
|
|
if (i1 == i2 && j1 == j2)
|
||
|
|
f[i1][j1][i2][j2] = x + a[i1][j1];
|
||
|
|
else
|
||
|
|
f[i1][j1][i2][j2] = x + a[i1][j1] + a[i2][j2];
|
||
|
|
}
|
||
|
|
cout << f[n][m][n][m];
|
||
|
|
return 0;
|
||
|
|
}
|