#include<bits/stdc++.h>
using namespace std;
int main(){
int dp[70][70][155];
int x,y;
int n[55][55];
memset(dp,0,sizeof(dp));
cin>>x>>y;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>n[i][j];
}
}
for(int i=1;i<=x+y-1;i++){
for(int j=1;j<=i;j++)
for(int z=1;z<j;z++){
if(i-j&&i-z&&j>1){
dp[j][z][i]=max(max(dp[j-1][z-1][i-1],dp[j-1][z][i-1]),max(dp[j][z-1][i-1],dp[j][z][i-1]))+n[j][i-j]+n[z][i-z];
}
}
}
cout<<dp[x][x-1][x+y-1];
return 0;
}
代码呈上,样例已过