Advertisement
Spa_m

DFS

May 24th, 2018
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.21 KB | None | 0 0
  1.         static int DFS(ref int[][] grid, int row, int col, int count, int m)
  2.         {
  3.             if (grid == null || row < 0 || col < 0 || row >= grid.GetLength(0) ||
  4.                 col >= m || grid[row][col] == 0)
  5.                 return 0;
  6.  
  7.             grid[row][col] = 0;
  8.  
  9.             for (int r = row - 1; r <= row + 1; r++)
  10.                 for (int c = col - 1; c <= col + 1; c++)
  11.                 {
  12.                     count += DFS(ref grid, r, c, 0, m);
  13.                 }
  14.  
  15.             return count + 1;
  16.  
  17.         }
  18.  
  19.         static void Main(string[] args)
  20.         {
  21.             int n = Convert.ToInt32(Console.ReadLine());
  22.  
  23.             int m = Convert.ToInt32(Console.ReadLine());
  24.  
  25.             int[][] grid = new int[n][];
  26.  
  27.             for (int i = 0; i < n; i++)
  28.             {
  29.                 grid[i] = Array.ConvertAll(Console.ReadLine().Split(' '), gridTemp => Convert.ToInt32(gridTemp));
  30.             }
  31.             int max = 0;
  32.             for (int i = 0; i < n; i++)
  33.             {
  34.                 for (int j = 0; j < m; j++)
  35.                 {
  36.                     max = Math.Max(DFS(ref grid, i, j, 0, m), max);
  37.                 }
  38.             }
  39.             Console.WriteLine(max);
  40.  
  41.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement