fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef pair<int, int> ii;
  6.  
  7. const int INF = 1e9;
  8. const ll LINF = 1e18;
  9.  
  10. const int N = 1e2 + 5;
  11.  
  12. int n, m;
  13. int a[N][N];
  14. int dp[N][N];
  15.  
  16. int main() {
  17. ios::sync_with_stdio(0); cin.tie(0);
  18. cin >> n >> m;
  19.  
  20. for (int i = 1; i <= n; i++) {
  21. for (int j = 1; j <= m; j++) cin >> a[i][j];
  22. }
  23.  
  24. // update lĂȘn
  25. for (int i = 1; i <= n; i++) {
  26. for (int j = 1; j <= m; j++) dp[i][j] = -INF;
  27. }
  28.  
  29. for (int i = 1; i <= n; i++) dp[i][1] = a[i][1];
  30.  
  31. for (int j = 1; j < m; j++) {
  32. for (int i = 1; i <= n; i++) {
  33. dp[i - 1][j + 1] = max(dp[i - 1][j + 1], dp[i][j] + a[i - 1][j + 1]);
  34. dp[i][j + 1] = max(dp[i][j + 1], dp[i][j] + a[i][j + 1]);
  35. dp[i + 1][j + 1] = max(dp[i + 1][j + 1], dp[i][j] + a[i + 1][j + 1]);
  36. }
  37. }
  38.  
  39. int ans = -INF;
  40. for (int i = 1; i <= n; i++) ans = max(ans, dp[i][m]);
  41.  
  42. cout << ans << '\n';
  43. }
Success #stdin #stdout 0.01s 5276KB
stdin
5 7
9 -2 6 2 1 3 4
0 -1 6 7 1 3 3
8 -2 8 2 5 3 2
1 -1 6 2 1 6 1
7 -2 6 2 1 3 7
stdout
41