Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. #include <map>
  2. #include <set>
  3. #include <list>
  4. #include <cmath>
  5. #include <ctime>
  6. #include <deque>
  7. #include <queue>
  8. #include <stack>
  9. #include <string>
  10. #include <bitset>
  11. #include <cstdio>
  12. #include <limits>
  13. #include <vector>
  14. #include <climits>
  15. #include <cstring>
  16. #include <cstdlib>
  17. #include <fstream>
  18. #include <numeric>
  19. #include <sstream>
  20. #include <iostream>
  21. #include <algorithm>
  22. #include <unordered_map>
  23.  
  24. using namespace std;
  25.  
  26. int count_region(vector<vector<int>> &grid, int i, int j) {
  27. if (i < 0 || j < 0 || i >= grid.size() || j >= grid[0].size())
  28. return 0;
  29. if (grid[i][j] != 1)
  30. return 0;
  31. grid[i][j] = 2;
  32. return 1 + count_region(grid, i + 1, j + 0)
  33. + count_region(grid, i - 1, j + 0)
  34. + count_region(grid, i + 0, j + 1)
  35. + count_region(grid, i + 0, j - 1)
  36. + count_region(grid, i + 1, j + 1)
  37. + count_region(grid, i - 1, j - 1)
  38. + count_region(grid, i + 1, j - 1)
  39. + count_region(grid, i - 1, j + 1);
  40. }
  41.  
  42. int get_biggest_region(vector< vector<int> > grid) {
  43. int res = 0;
  44. for (int i = 0; i < grid.size(); ++i) {
  45. for (int j = 0; j < grid[i].size(); ++j) {
  46. if (grid[i][j] == 1) {
  47. int size = count_region(grid, i, j);
  48. res = max(res, size);
  49. }
  50. }
  51. }
  52. return res;
  53. }
  54.  
  55. int main(){
  56. int n;
  57. cin >> n;
  58. int m;
  59. cin >> m;
  60. vector< vector<int> > grid(n,vector<int>(m));
  61. for(int grid_i = 0;grid_i < n;grid_i++){
  62. for(int grid_j = 0;grid_j < m;grid_j++){
  63. cin >> grid[grid_i][grid_j];
  64. }
  65. }
  66. cout << get_biggest_region(grid) << endl;
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement