Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define N 1005
- using namespace std;
- ifstream fin("roboti.in");
- ofstream fout("roboti.out");
- ///Lee -864
- int a[N][N],n,m;
- int li,ci,ls,cs;
- int dl[]= {-1,0,1,0};
- int dc[]= {0,-1,0,1};
- ///coada
- queue <int>lin,col;
- void Citire()
- {
- fin>>n>>m;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=m; j++)
- {
- fin>>a[i][j];
- a[i][j]=-a[i][j];
- }
- fin>>li>>ci>>ls>>cs;
- }
- bool Inside(int i, int j)
- {
- return i>=1 && i<=n && j>=1 && j<=m;
- }
- void Lee(int li, int ci)
- {
- int l,c, k,lv,cv;
- lin.push(li);col.push(ci);
- a[li][ci]=1;
- while(!lin.empty()&&a[ls][cs]==0)
- {
- l=lin.front();
- c=col.front();
- lin.pop();
- col.pop();
- for(k=0;k<4;k++)
- {
- lv=l+dl[k];
- cv=c+dc[k];
- if(Inside(lv,cv)&&a[lv][cv]==0)
- {
- lin.push(lv); col.push(cv);
- a[lv][cv]=a[l][c]+1;
- }
- }
- }
- }
- int main()
- {
- Citire();
- Lee(li,ci);
- if(a[ls][cs]==0)fout<<-1;
- else fout<<a[ls][cs]-1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement