lelouche29

frog_Jump_Samsung

Sep 13th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int n,m;
  5. int mat[1000][1000];
  6. int dp[1000][1000];
  7. int s1,s2,d1,d2;
  8.  
  9. bool valid(int x, int y){
  10.     if(x>=0 && x<n && y>=0 && y<m && a[x][y]=1)
  11.         return true;
  12.     return false;
  13. }
  14.  
  15. int dx[]={0,1,0,-1};
  16. int dy[]={1,0,-1,0};
  17.  
  18. void solve(int x, int y, int cost){
  19.     if(dp[x][y] > ans) dp[x][y]=ans;
  20.  
  21.     for(int i=0; i<4; i++){
  22.         int m= x+ dx[i];
  23.         int n= y+ dy[i];
  24.  
  25.         if(valid(m,n)){
  26.             int temp;
  27.             if(n==y) temp=1;
  28.             if(m==x) temp=0;
  29.             solve(m,n,cost +temp);
  30.         }
  31.     }
  32. }
  33.  
  34.  
  35. int main() {
  36.     int t;
  37.     cin>>t;
  38.     while(t--){
  39.         cin>>n>>m;
  40.  
  41.         for(int i = 1; i<=n; i++){
  42.             for(int j = 1; j<=m; j++){
  43.                 dp[i][j] = 1000000;
  44.                 cin>>a[i][j];
  45.             }
  46.         }
  47.  
  48.         cin>>s1>>s2>>d1>>d2;
  49.         solve(s1,s2,0);
  50.         cout<<dp[d1][d2]<<endl;
  51.     }
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment