nassss

Untitled

Mar 15th, 2020
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Temp
  6. {
  7. class Program
  8. {
  9. static int counter = 0;
  10. static int maxCounter = 0;
  11. static char bomb = 'b';
  12. static int currentNum = 0;
  13.  
  14. static void Main(string[] args)
  15. {
  16. int output = LoadingTheMatrix();
  17. Console.WriteLine(output);
  18. }
  19. static int LoadingTheMatrix()
  20. {
  21. var parameters = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
  22. var row = parameters[0];
  23. var col = parameters[1];
  24. if (row < 3 || col > 1024)
  25. {
  26. throw new ArgumentOutOfRangeException("Rows and cols should be between following ranges >=3 && <= 1024!");
  27. }
  28. int[,] matrix = new int[row, col];
  29. for (int i = 0; i < row; i++) // to be added in Matrix loading method
  30. {
  31. var input = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
  32.  
  33. for (int j = 0; j < col; j++)
  34. {
  35. matrix[i, j] = input[j];
  36. }
  37. }
  38. for (int i = row - 1; i >= 0; i--)
  39. {
  40. for (int j = col - 1; j >= 0; j--)
  41. {
  42. currentNum = matrix[i, j];
  43. FindLargestSurface(i, j, matrix);
  44. if (counter > maxCounter)
  45. {
  46. maxCounter = counter;
  47. }
  48. counter = 0;
  49. }
  50. }
  51. return maxCounter;
  52. }
  53. static void FindLargestSurface(int row, int col, int[,] matrix)
  54. {
  55. if ((row < 0) || (row >= matrix.GetLength(0)) ||
  56. (col < 0) || (col >= matrix.GetLength(1)) || matrix[row,col] == bomb)
  57. {
  58. return;
  59. }
  60. if (currentNum != matrix[row, col])
  61. {
  62. return;
  63. }
  64. matrix[row, col] = bomb;
  65. counter++;
  66.  
  67. FindLargestSurface(row, col - 1, matrix); //left
  68. FindLargestSurface(row - 1, col, matrix); //up
  69. FindLargestSurface(row, col + 1, matrix); //rigth
  70. FindLargestSurface(row + 1, col, matrix); //down
  71. }
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment