穿纸条
hnahongyi
2023-12-16 11:12:10
//传纸条
#include<bits/stdc++.h>
using namespace std;
int a[51][51],f[101][51][51];
int main(){
int m,n;
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(int i=2;i<=m+n-1;i++)
for(int j=max(1,i-n+1);j<=min(m,i);j++)
for(int k=max(1,i-n+1);k<=min(m,i);k++){
f[i][j][k]=max(max(f[i-1][j][k],f[i-1][j-1][k]),max(f[i-1][j][k-1],f[i-1][j-1][k-1]))+a[j][i+1-j]+a[k][i+1-k];
if(j==k) f[i][j][k]-=a[j][i+1-j];
}
printf("%d",f[n+m-1][m][m]);
return 0;
}