为什么 if 里加上 p-i>n||p-j>n 就不对了
#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[110][55][55],a[55][55];
signed main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j];
for(int p=2;p<=n+m-1;p++){
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if (p-i<1||p-j<1||p-i>n||p-j>n) continue;
f[p][i][j]=max(max(f[p-1][i][j],f[p-1][i][j-1]),max(f[p-1][i-1][j],f[p-1][i-1][j-1]))+a[i][p-i]+a[j][p-j];
}
}
}
cout<<f[n+m-1][n-1][n];
return 0;
}