MAGCARI

Untitled

Nov 9th, 2022
922
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. /*
  2.     Task    : _example
  3.     Author  : Phumipat C. [MAGCARI]
  4.     Language: C++
  5.     Created : 09 November 2022 [18:57]
  6. */
  7. #include<bits/stdc++.h>
  8. using namespace std;
  9. int a[510][510],dp[510][510];
  10. int main(){
  11.     int n,m;
  12.     scanf("%d %d",&n,&m);
  13.     for(int i=1;i<=n;i++)
  14.         for(int j=1;j<=m;j++)
  15.             scanf("%d",&a[i][j]);
  16.     for(int i=1;i<=n;i++){
  17.         for(int j=1;j<=m;j++){
  18.             if(j>1 && j<m)
  19.                 dp[i%2][j] = min({dp[(i-1)%2][j-1],dp[(i-1)%2][j],dp[(i-1)%2][j+1]}) + a[i][j];
  20.             else if(j == 1)
  21.                 dp[i%2][j] = min(dp[(i-1)%2][j],dp[(i-1)%2][j+1]) + a[i][j];
  22.             else if(j == m)
  23.                 dp[i][j] = min(dp[(i-1)%2][j-1],dp[(i-1)%2][j]) + a[i][j];
  24.         }
  25.     }
  26.     int mn = 1e9;
  27.     for(int j=1;j<=m;j++)
  28.         mn = min(mn,dp[n%2][j]);
  29.     printf("%d\n",mn);
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment