Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <queue>
  4. using namespace std;
  5. int n,m;
  6.  
  7. int main(int argc, const char * argv[]) {
  8. ios_base::sync_with_stdio(false);
  9. cin >> n >> m;
  10. int r,c;
  11. cin >> r >> c;
  12.  
  13. int mat[1001][1001];
  14. memset(mat, -1, sizeof(mat));
  15. int di[] = {-1,1,0,0};
  16. int dj[] = {0,0, -1, 1};
  17. r--;
  18. c--;
  19. int ucenik,ii,jj;
  20. queue<int> q;
  21. q.push(r);
  22. q.push(c);
  23. q.push(0);
  24. while (!q.empty()) {
  25. ii = q.front();
  26. q.pop() ;
  27. jj=q.front();
  28. q.pop();
  29. ucenik=q.front();
  30. q.pop();
  31. for(int i=0; i<4; i++){
  32. int ni = ii+di[i];
  33. int nj = jj + dj[i];
  34. if(ni < 0 || nj < 0 || ni >= n || nj >= m)continue;
  35. if(mat[ni][nj] != -1)continue;
  36. mat[ni][nj] = ucenik + 1;
  37. q.push(ni);
  38. q.push(nj);
  39. q.push(ucenik + 1);
  40. }
  41. }
  42. int taken = 0;
  43. for(int i=0; i<n; i++){
  44. for(int j=0; j<m; j++){
  45. if(mat[i][j]==ucenik)taken++;
  46. }
  47.  
  48. }
  49. cout<<ucenik<<endl<<taken<<endl;
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement