WA in #6 #14 #18 #22
#include<bits/stdc++.h>
#define N 1010
#define int long long
using namespace std;
int f[N][N],a[N][N],n,m,ans = LONG_LONG_MAX;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> n >> m;
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= m;j ++)
{
cin >> a[i][j];
a[i][j] += (a[i][j - 1] >= 0 ? 0 : a[i][j - 1]);
f[i][j] = ans;
}
for(int i = 1;i <= m;i ++) f[n + 1][i] = 0;
for(int i = 1;i <= n;i ++) f[i][m + 1] = 0;
for(int i = n;i > 0;i --)
for(int j = m;j > 0;j --)
f[i][j] = min(f[i + 1][j] + (a[i][j] < 0 ? a[i][j] : 0),f[i][j + 1]) + (a[i][j] >= 0 ? a[i][j] : 0);
for(int i = 1;i <= m;i ++) ans = min(ans,f[1][i]);
cout << ans << endl;
return 0;
}