Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace _7.KnightGame
- {
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- int size = int.Parse(Console.ReadLine());
- char[,] matrix = new char[size, size];
- for (int row = 0; row < size; row++)
- {
- string line = Console.ReadLine();
- for (int col = 0; col < size; col++)
- {
- matrix[row, col] = line[col];
- }
- }
- int knightsRemoved = 0;
- bool allKnightsAreRemoved = false;
- while (allKnightsAreRemoved == false)
- {
- int knightTargets = int.MinValue;
- int knightRow = -1;
- int knightCol = -1;
- for (int row = 0; row < size; row++)
- {
- for (int col = 0; col < size; col++)
- {
- if (matrix[row, col] == 'K')
- {
- int currentKnightTargets = CountTargets(matrix, row, col);
- if (currentKnightTargets > knightTargets)
- {
- knightTargets = currentKnightTargets;
- knightRow = row;
- knightCol = col;
- }
- }
- }
- }
- if (knightTargets > 0)
- {
- matrix[knightRow, knightCol] = '0';
- knightsRemoved++;
- }
- else
- {
- allKnightsAreRemoved = true;
- }
- }
- Console.WriteLine(knightsRemoved);
- }
- private static int CountTargets(char[,] matrix, int row, int col)
- {
- int targets = 0;
- if ((col + 2) < matrix.GetLength(1) && (row - 1) >= 0)
- {
- if (matrix[row - 1, col + 2] == 'K')
- {
- targets++;
- }
- }
- if ((col + 2) < matrix.GetLength(1) && (row + 1) < matrix.GetLength(0))
- {
- if (matrix[row + 1, col + 2] == 'K')
- {
- targets++;
- }
- }
- if ((col - 2) >= 0 && (row - 1) >= 0)
- {
- if (matrix[row - 1, col - 2] == 'K')
- {
- targets++;
- }
- }
- if ((col - 2) >= 0 && (row + 1) < matrix.GetLength(0))
- {
- if (matrix[row + 1, col - 2] == 'K')
- {
- targets++;
- }
- }
- if ((row - 2) >= 0 && (col + 1) < matrix.GetLength(1))
- {
- if (matrix[row - 2, col + 1] == 'K')
- {
- targets++;
- }
- }
- if ((row - 2) >= 0 && (col - 1) >= 0)
- {
- if (matrix[row - 2, col - 1] == 'K')
- {
- targets++;
- }
- }
- if ((row + 2) < matrix.GetLength(0) && (col + 1) < matrix.GetLength(1))
- {
- if (matrix[row + 2, col + 1] == 'K')
- {
- targets++;
- }
- }
- if ((row + 2) < matrix.GetLength(0) && (col - 1) >= 0)
- {
- if (matrix[row + 2, col - 1] == 'K')
- {
- targets++;
- }
- }
- return targets;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement