Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. void inArray(int** arr, int size);
  5. void outArray(int** arr, int size);
  6. int findLocalMin(int** arr, int size);
  7.  
  8. int main()
  9. {
  10. int size;
  11. std::cin >> size;
  12. int** arr = new int* [size];
  13. for (int i = 0; i < size; i++)
  14. {
  15. arr[i] = new int[size];
  16. }
  17. inArray(arr, size);
  18. outArray(arr, size);
  19. std::cout << findLocalMin(arr, size);
  20. return 0;
  21. }
  22.  
  23.  
  24. void inArray(int** arr, int size)
  25. {
  26. for (int i = 0; i < size; i++)
  27. {
  28. for (int j = 0; j < size; j++)
  29. {
  30. std::cin >> arr[i][j];
  31. }
  32. }
  33. }
  34. void outArray(int** arr, int size)
  35. {
  36. for (int i = 0; i < size; i++)
  37. {
  38. for (int j = 0; j < size; j++)
  39. {
  40. std::cout << std::setw(2) << arr[i][j];
  41. }
  42. std::cout << std::endl;
  43. }
  44. }
  45. int findLocalMin(int** arr, int size)
  46. {
  47. int k = 0;
  48. for (int i = 0; i < size; i++)
  49. {
  50. for (int j = 0; j < size; j++)
  51. {
  52. if (size == 1)
  53. {
  54. k++;
  55. }
  56. else if (i == 0)
  57. {
  58. if (j == 0)
  59. {
  60. if ((arr[i][j] < arr[i][j + 1]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i + 1][j + 1]))
  61. k++;
  62. }
  63. else if (j == size - 1)
  64. {
  65. if ((arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i + 1][j - 1]))
  66. k++;
  67. }
  68. else
  69. {
  70. if ((arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i + 1][j - 1]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i + 1][j + 1]) && (arr[i][j] < arr[i][j + 1]))
  71. k++;
  72. }
  73. }
  74. else if (i == size - 1)
  75. {
  76. if (j == 0)
  77. {
  78. if ((arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i][j + 1]))
  79. k++;
  80. }
  81. else if (j == size - 1)
  82. {
  83. if ((arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i - 1][j]))
  84. k++;
  85. }
  86. else
  87. {
  88. if ((arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i][j + 1]))
  89. k++;
  90. }
  91. }
  92. else
  93. {
  94. if (j == 0)
  95. {
  96. if ((arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i][j + 1]) && (arr[i][j] < arr[i + 1][j + 1]) && (arr[i][j] < arr[i + 1][j]))
  97. k++;
  98. }
  99. else if (j == size - 1)
  100. {
  101. if ((arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i][j - 1]) && (arr[i][j] < arr[i + 1][j - 1]) && (arr[i][j] < arr[i + 1][j]))
  102. k++;
  103. }
  104. else
  105. {
  106. if ((arr[i][j] < arr[i - 1][j - 1]) && (arr[i][j] < arr[i - 1][j]) && (arr[i][j] < arr[i - 1][j + 1]) && (arr[i][j] < arr[i][j + 1]) && (arr[i][j] < arr[i + 1][j + 1]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i + 1][j]) && (arr[i][j] < arr[i][j - 1]))
  107. k++;
  108. }
  109. }
  110. }
  111.  
  112. }
  113. return k;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement