Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <fstream>
  2. #include<queue>
  3. using namespace std;
  4. ifstream cin ("schior.in");
  5. ofstream cout ("schior.out");
  6. struct poz
  7. {
  8. int x,y;
  9. };
  10. queue<poz>q;
  11. int dx[8] = { 0, 1, 1, 1, 0, -1, -1, -1 };
  12. int dy[8] = { 1, 1, 0, -1, -1, -1, 0, 1 };
  13. int x1,y1,a[102][102],k,mini=10000,n,m,i,j,viz[102][102];
  14. int main()
  15. {
  16. cin>>n>>m;
  17. cin>>x1>>y1;
  18. for(i=1; i<=n; i++)
  19. for(j=1; j<=m; j++)
  20. cin>>a[i][j];
  21. for(i=0; i<=n+1; i++)
  22. viz[i][m+1]=viz[i][0]=a[i][0]=a[i][m+1]=10000;
  23.  
  24. for(i=0; i<=m+1; i++)
  25. viz[n+1][i]=viz[0][i]=a[0][i]=a[n+1][i]=10000;
  26.  
  27. poz p1,p2;
  28. p1.x=x1;
  29. p1.y=y1;
  30. q.push(p1);
  31. mini=a[p1.x][p1.y];
  32. viz[p1.x][p1.y]=1;
  33. while(!q.empty())
  34. {
  35. p1=q.front();
  36. q.pop();
  37. for(k=0; k<8; k++)
  38. {
  39. p2.x=p1.x+dx[k];
  40. p2.y=p1.y+dy[k];
  41. if(a[p2.x][p2.y]<=a[p1.x][p1.y]&&viz[p2.x][p2.y]==0)
  42. {
  43. viz[p2.x][p2.y]=1;
  44. if(a[p2.x][p2.y]<mini)
  45. mini=a[p2.x][p2.y];
  46. q.push(p2);
  47. }
  48. }
  49. }
  50. cout<<mini;
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement