Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. namespace _7.KnightGame
  2. {
  3. using System;
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. int size = int.Parse(Console.ReadLine());
  9. char[,] matrix = new char[size, size];
  10.  
  11. for (int row = 0; row < size; row++)
  12. {
  13. string line = Console.ReadLine();
  14.  
  15. for (int col = 0; col < size; col++)
  16. {
  17. matrix[row, col] = line[col];
  18. }
  19. }
  20.  
  21. int knightsRemoved = 0;
  22. bool allKnightsAreRemoved = false;
  23.  
  24. while (allKnightsAreRemoved == false)
  25. {
  26. int knightTargets = int.MinValue;
  27. int knightRow = -1;
  28. int knightCol = -1;
  29.  
  30. for (int row = 0; row < size; row++)
  31. {
  32. for (int col = 0; col < size; col++)
  33. {
  34. if (matrix[row, col] == 'K')
  35. {
  36. int currentKnightTargets = CountTargets(matrix, row, col);
  37.  
  38. if (currentKnightTargets > knightTargets)
  39. {
  40. knightTargets = currentKnightTargets;
  41. knightRow = row;
  42. knightCol = col;
  43. }
  44. }
  45. }
  46. }
  47. if (knightTargets > 0)
  48. {
  49. matrix[knightRow, knightCol] = '0';
  50. knightsRemoved++;
  51. }
  52. else
  53. {
  54. allKnightsAreRemoved = true;
  55. }
  56. }
  57.  
  58. Console.WriteLine(knightsRemoved);
  59. }
  60.  
  61. private static int CountTargets(char[,] matrix, int row, int col)
  62. {
  63. int targets = 0;
  64.  
  65. if ((col + 2) < matrix.GetLength(1) && (row - 1) >= 0)
  66. {
  67. if (matrix[row - 1, col + 2] == 'K')
  68. {
  69. targets++;
  70. }
  71. }
  72. if ((col + 2) < matrix.GetLength(1) && (row + 1) < matrix.GetLength(0))
  73. {
  74. if (matrix[row + 1, col + 2] == 'K')
  75. {
  76. targets++;
  77. }
  78. }
  79. if ((col - 2) >= 0 && (row - 1) >= 0)
  80. {
  81. if (matrix[row - 1, col - 2] == 'K')
  82. {
  83. targets++;
  84. }
  85. }
  86. if ((col - 2) >= 0 && (row + 1) < matrix.GetLength(0))
  87. {
  88. if (matrix[row + 1, col - 2] == 'K')
  89. {
  90. targets++;
  91. }
  92. }
  93. if ((row - 2) >= 0 && (col + 1) < matrix.GetLength(1))
  94. {
  95. if (matrix[row - 2, col + 1] == 'K')
  96. {
  97. targets++;
  98. }
  99. }
  100. if ((row - 2) >= 0 && (col - 1) >= 0)
  101. {
  102. if (matrix[row - 2, col - 1] == 'K')
  103. {
  104. targets++;
  105. }
  106. }
  107. if ((row + 2) < matrix.GetLength(0) && (col + 1) < matrix.GetLength(1))
  108. {
  109. if (matrix[row + 2, col + 1] == 'K')
  110. {
  111. targets++;
  112. }
  113. }
  114. if ((row + 2) < matrix.GetLength(0) && (col - 1) >= 0)
  115. {
  116. if (matrix[row + 2, col - 1] == 'K')
  117. {
  118. targets++;
  119. }
  120. }
  121.  
  122. return targets;
  123. }
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement