fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 1005;
  4. long long a[maxn][maxn];
  5. long long f[maxn][maxn];
  6.  
  7. int main() {
  8. int n, m;
  9. cin >> n >> m;
  10. for (int i = 1; i <= n; ++i) {
  11. for (int j = 1; j <= m; ++j) {
  12. cin >> a[i][j];
  13. }
  14. }
  15.  
  16. for (int i = 1; i <= n; ++i) {
  17. f[i][1] = a[i][1];
  18. }
  19.  
  20. for (int j = 2; j <= m; ++j) {
  21. for (int i = 1; i <= n; ++i) {
  22. long long mx = 0;
  23. mx = max(mx, f[i][j-1]);
  24. if (i > 1) {
  25. mx = max(mx, f[i - 1][j - 1]);
  26. }
  27. if (i < n) {
  28. mx = max(mx, f[i + 1][j - 1]);
  29. }
  30. f[i][j] = a[i][j] + mx;
  31. }
  32. }
  33.  
  34. long long mx = 0;
  35. for (int i = 1; i <= n; ++i) {
  36. mx = max(mx, f[i][m]);
  37. }
  38. cout << mx;
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0.01s 5328KB
stdin
Standard input is empty
stdout
Standard output is empty