Advertisement
basystyi

Untitled

May 7th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. struct cell{
  4.     long long r,c;
  5. };
  6. long long i,j,m,t,c,a[101][101],x,r,n;
  7. queue <cell> q;
  8. void pow(long long r, long long c, long long r2, long long c2){
  9.     if(r<1 || r>n || c<1 || c>m) return;
  10.     if(a[r][c]!=0) return;
  11.     a[r][c]=a[r2][c2]+1;
  12.     q.push({r,c});
  13. }
  14. int main()
  15. {
  16. cin >> n >> m;
  17. a[1][1]=1;
  18. q.push({1,1});
  19. for(i=1;i<=n;i++){
  20.     for(j=1;j<=m;j++) cin >> a[i][j];
  21. }
  22. while(!q.empty()){
  23. x=q.front();
  24. r=q.r;
  25. c=q.c;
  26. pow(r+1,c,r,c);
  27. pow(r-1,c,r,c);
  28. pow(r,c+1,r,c);
  29. pow(r,c-1,r,c);
  30. }
  31. if(a[n][m]<1) cout << "-1";
  32. else cout << a[n][m]-1;
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement