fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void solve(){
  5. int hp, n, m; cin >> hp >> n >> m;
  6. int a[n][m], dp[n][m];
  7. for(int i = 0; i < n; i++){
  8. for(int j = 0; j < m; j++){
  9. cin >> a[i][j];
  10. dp[i][j] = 0;
  11. }
  12. } dp[0][0] = hp + a[0][0];
  13. for(int i = 0; i < n; i++){
  14. for(int j = 0; j < m; j++){
  15. if(i == 0 && j == 0) continue;
  16. int fromTop = (i - 1 >= 0 && dp[i - 1][j] > 0) ? dp[i - 1][j] + a[i][j] : -1;
  17. int fromLeft = (j - 1 >= 0 && dp[i][j - 1] > 0) ? dp[i][j - 1] + a[i][j] : -1;
  18. dp[i][j] = max(fromTop, fromLeft);
  19. if(dp[i][j] <= 0) dp[i][j] = -1;
  20. }
  21. } cout << max(-1, dp[n - 1][m - 1]) << "\n";
  22. }
  23.  
  24. int main(){
  25. ios_base::sync_with_stdio(false);
  26. cin.tie(NULL); cout.tie(NULL);
  27.  
  28. solve();
  29. }
Success #stdin #stdout 0.01s 5284KB
stdin
5 2 3
2 2
3 3
-1 -1
stdout
11