Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int n,m;
- int mat[1000][1000];
- int dp[1000][1000];
- int s1,s2,d1,d2;
- bool valid(int x, int y){
- if(x>=0 && x<n && y>=0 && y<m && a[x][y]=1)
- return true;
- return false;
- }
- int dx[]={0,1,0,-1};
- int dy[]={1,0,-1,0};
- void solve(int x, int y, int cost){
- if(dp[x][y] > ans) dp[x][y]=ans;
- for(int i=0; i<4; i++){
- int m= x+ dx[i];
- int n= y+ dy[i];
- if(valid(m,n)){
- int temp;
- if(n==y) temp=1;
- if(m==x) temp=0;
- solve(m,n,cost +temp);
- }
- }
- }
- int main() {
- int t;
- cin>>t;
- while(t--){
- cin>>n>>m;
- for(int i = 1; i<=n; i++){
- for(int j = 1; j<=m; j++){
- dp[i][j] = 1000000;
- cin>>a[i][j];
- }
- }
- cin>>s1>>s2>>d1>>d2;
- solve(s1,s2,0);
- cout<<dp[d1][d2]<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment