Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- struct cell{
- long long r,c;
- };
- long long i,j,m,t,c,a[101][101],x,r,n;
- queue <cell> q;
- void pow(long long r, long long c, long long r2, long long c2){
- if(r<1 || r>n || c<1 || c>m) return;
- if(a[r][c]!=0) return;
- a[r][c]=a[r2][c2]+1;
- q.push({r,c});
- }
- int main()
- {
- cin >> n >> m;
- a[1][1]=1;
- q.push({1,1});
- for(i=1;i<=n;i++){
- for(j=1;j<=m;j++) cin >> a[i][j];
- }
- while(!q.empty()){
- x=q.front();
- r=q.r;
- c=q.c;
- pow(r+1,c,r,c);
- pow(r-1,c,r,c);
- pow(r,c+1,r,c);
- pow(r,c-1,r,c);
- }
- if(a[n][m]<1) cout << "-1";
- else cout << a[n][m]-1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement