玄关求调。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
#define dbug(x) (void)(cerr << #x " = " << x << endl)
ll n,m;
ll a[10086][10086];
ll w[10086][10086];
ll sum;
int main(){
//ios::sync_with_stdio(false);
//cin.tie(0),cout.tie(0);
cin >> n >> m;
for(ll i = 1;i <= n;i++){
for(ll j = 1;j <= m;j++){
cin >> a[i][j];
}
}
for(ll i = 1;i <= n;i++){
w[i][1] = w[i-1][1] + a[i][1];
}
// for(ll i = 1;i <= n;i++){
// w[i][m] = w[i-1][m] + a[i][m];
// }
for(ll i = 2;i <= m;i++){//循环第几行
//从上往下
for(ll j = 1;j <= n;j++){
w[j][i] = max(w[j][i-1],w[max(j-1,(ll)1)][i]) + a[j][i];
}
//从下往上
for(ll j = n;j >= 1;j--){
w[j][i] = max({w[j][i-1],w[min(j+1,n)][i],w[j][i]-a[j][i]})+a[j][i];
}
}
for(ll i = 1;i <= n;i++){
for(ll j = 1;j <= m;j++){
cout << w[i][j] << " ";
}
cout << endl;
}
cout << w[n][m];
return 0;
}