using namespace std;
int n,m;
int a[10010][10010];
int b[10010][10010];
int niubi(int aa){//最后一列的路径是定下来的
int sum=0;
for(int i = aa;i <= n;i ++){
sum+=a[m][i];
}
return sum;
}
long long dp(int i,int j,int k){//i表示列,j表示行
b[i][j]=1;
cout<<i<<" "<<j<<endl;
if(k==1) return 0;
if(j==0||j==n+1) return 0;
if(i==m) return 0;
if(i+1==m) return max( dp( i + 1 , j , b[i+1][j] ) + a[i+1][j] + niubi(j) , max(dp( i , j+1 , b[i][j+1]) + a[i][j+1] , dp( i , j-1 , b[i][j-1] ) + a[i][j-1] ));
return max( dp( i+1 , j , b[i+1][j] ) + a[i+1][j] , max( dp( i, j+1 , b[i][j+1] ) + a[i][j+1] , dp( i , j-1 , b[i][j-1] )+ a[i][j-1] ));
}
int main(){
cin>>n>>m;
for(int i = 1;i <= m; i++){
for(int j = 1;j <= n; j++){
cin >> a[i][j];
}
}
b[1][1]=1;
long long maxn = (dp(1,1,0));
cout << maxn;
}
样例一直过不去