fork download
  1. #include<bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. const int oo =1e18;
  5.  
  6. int m, n;
  7. int a[505][505];
  8. int dp[505][505];
  9.  
  10. main()
  11. {
  12. ios_base::sync_with_stdio(0);
  13. cin.tie(0);
  14. cout.tie(0);
  15.  
  16. cin>>m>>n;
  17. for (int i=1;i<=m;i++)
  18. {
  19. for (int j=1;j<=n;j++)
  20. {
  21. cin>>a[i][j];
  22. }
  23. }
  24.  
  25. for (int i=0;i<=m+1;i++)
  26. {
  27. for (int j=0;j<=n+1;j++)
  28. {
  29. dp[i][j]=oo;
  30. }
  31. }
  32.  
  33. for (int i=1;i<=m;i++)
  34. {
  35. dp[i][1] = a[i][1];
  36. }
  37.  
  38. for (int j =2;j<=n;j++)
  39. {
  40. for (int i = 1;i<=m;i++)
  41. {
  42. int res = min({dp[i-1][j-1], dp[i][j-1], dp[i+1][j-1]});
  43. dp[i][j] = res+ a[i][j];
  44. }
  45. }
  46.  
  47. int ans =oo;
  48. for (int i =1;i<=m;i++)
  49. {
  50. ans =min(ans, dp[i][n]);
  51. }
  52.  
  53. cout<<ans;
  54. }
  55.  
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
1000000000000000000