Advertisement
nicuvlad76

Untitled

Jan 13th, 2021
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 1005
  3. using namespace std;
  4. ifstream fin("roboti.in");
  5. ofstream fout("roboti.out");
  6. ///Lee -864
  7. int a[N][N],n,m;
  8. int li,ci,ls,cs;
  9. int dl[]= {-1,0,1,0};
  10. int dc[]= {0,-1,0,1};
  11. ///coada
  12. queue <int>lin,col;
  13. void Citire()
  14. {
  15. fin>>n>>m;
  16. for(int i=1; i<=n; i++)
  17. for(int j=1; j<=m; j++)
  18. {
  19. fin>>a[i][j];
  20. a[i][j]=-a[i][j];
  21.  
  22. }
  23. fin>>li>>ci>>ls>>cs;
  24. }
  25. bool Inside(int i, int j)
  26. {
  27. return i>=1 && i<=n && j>=1 && j<=m;
  28. }
  29. void Lee(int li, int ci)
  30. {
  31. int l,c, k,lv,cv;
  32. lin.push(li);col.push(ci);
  33. a[li][ci]=1;
  34. while(!lin.empty()&&a[ls][cs]==0)
  35. {
  36. l=lin.front();
  37. c=col.front();
  38. lin.pop();
  39. col.pop();
  40. for(k=0;k<4;k++)
  41. {
  42. lv=l+dl[k];
  43. cv=c+dc[k];
  44. if(Inside(lv,cv)&&a[lv][cv]==0)
  45. {
  46. lin.push(lv); col.push(cv);
  47. a[lv][cv]=a[l][c]+1;
  48. }
  49. }
  50. }
  51.  
  52.  
  53. }
  54. int main()
  55. {
  56. Citire();
  57. Lee(li,ci);
  58. if(a[ls][cs]==0)fout<<-1;
  59. else fout<<a[ls][cs]-1;
  60. return 0;
  61. }
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement