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
- int lin[N*N],col[N*N];
- 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 st,dr, lv,cv,k,l,c;
- st=dr=1;
- lin[dr]=li;
- col[dr]=ci;///am pus in coada val init
- a[li][ci]=1;
- while(st<=dr)
- {
- l=lin[st];
- c=col[st++];///extrag din coada varf
- for(k=0; k<4; k++)
- {
- lv=l+dl[k];
- cv=c+dc[k];
- if(Inside(lv,cv)&& a[lv][cv]==0)
- {
- a[lv][cv]=a[l][c]+1;
- dr++;
- lin[dr]=lv;
- col[dr]=cv;
- }
- }
- }
- }
- 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