第二个测试数据WA
#include<bits/stdc++.h>
using namespace std;
#define MAXX 60
int a[MAXX][MAXX];
int dp1[2*MAXX][MAXX][MAXX];
int main()
{
int n,m,i,j,k,l;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=2;i<=m+n;i++)
for(j=1;j<=m;j++)
for(k=1;k<=m;k++)
{
dp1[i][j][k]=max(max(dp1[i-1][j][k-1],dp1[i-1][j-1][k]),
max(dp1[i-1][j-1][k-1],dp1[i-1][j][k]))
+ a[j][i-j]+a[k][i-k] ;
if(j==k)
dp1[i][j][k]-=a[j][i-j];
}
cout<<dp1[m+n][m][m];
return 0;
}