daily pastebin goal
52%
SHARE
TWEET

07.KnightGame

nikolapetkov824 Feb 22nd, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace SampleExamP03
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             int rows = int.Parse(Console.ReadLine());
  12.  
  13.             char[][] jagged = new char[rows][];
  14.  
  15.             for (int row = 0; row < rows; row++)
  16.             {
  17.                 string input = Console.ReadLine();
  18.  
  19.                 jagged[row] = new char[input.Length];
  20.  
  21.                 for (int col = 0; col < rows; col++)
  22.                 {
  23.                     jagged[row][col] = input[col];
  24.                 }
  25.             }
  26.  
  27.             int removedHorses = 0;
  28.  
  29.             while (true)
  30.             {
  31.                 int knightRow = -1;
  32.                 int knightCol = -1;
  33.                 int maxAttacked = 0;
  34.  
  35.                 for (int row = 0; row < rows; row++)
  36.                 {
  37.                     for (int col = 0; col < rows; col++)
  38.                     {
  39.                         if (jagged[row][ col] == 'K')
  40.                         {
  41.                             int tempAttack = CountAttacks(jagged, row, col);
  42.  
  43.                             if (tempAttack > maxAttacked)
  44.                             {
  45.                                 maxAttacked = tempAttack;
  46.                                 knightRow = row;
  47.                                 knightCol = col;
  48.                             }
  49.                         }
  50.                     }
  51.                 }
  52.  
  53.                 if (maxAttacked > 0)
  54.                 {
  55.                     jagged[knightRow][ knightCol] = '0';
  56.                     removedHorses++;
  57.                 }
  58.                 else
  59.                 {
  60.                     break;
  61.                 }
  62.             }
  63.  
  64.             Console.WriteLine(removedHorses);
  65.         }
  66.  
  67.         private static int CountAttacks(char[][] jagged, int row, int col)
  68.         {
  69.             int attacks = 0;
  70.  
  71.             if (isInJagged(row - 1, col - 2, jagged.Length) && jagged[row - 1][ col - 2] == 'K')
  72.             {
  73.                 attacks++;
  74.             }
  75.             if (isInJagged(row - 1, col + 2, jagged.Length) && jagged[row - 1][col + 2] == 'K')
  76.             {
  77.                 attacks++;
  78.             }
  79.             if (isInJagged(row + 1, col - 2, jagged.Length) && jagged[row + 1][col - 2] == 'K')
  80.             {
  81.                 attacks++;
  82.             }
  83.             if (isInJagged(row + 1, col + 2, jagged.Length) && jagged[row + 1][col + 2] == 'K')
  84.             {
  85.                 attacks++;
  86.             }
  87.             if (isInJagged(row - 2, col - 1, jagged.Length) && jagged[row - 2][col - 1] == 'K')
  88.             {
  89.                 attacks++;
  90.             }
  91.             if (isInJagged(row - 2, col + 1, jagged.Length) && jagged[row - 2][col + 1] == 'K')
  92.             {
  93.                 attacks++;
  94.             }
  95.             if (isInJagged(row + 2, col - 1, jagged.Length) && jagged[row + 2][col - 1] == 'K')
  96.             {
  97.                 attacks++;
  98.             }
  99.             if (isInJagged(row + 2, col + 1, jagged.Length) && jagged[row + 2][col + 1] == 'K')
  100.             {
  101.                 attacks++;
  102.             }
  103.             return attacks;
  104.         }
  105.  
  106.         private static bool isInJagged(int row, int col, int length)
  107.         {
  108.             return row >= 0 && row < length && col >= 0 && col < length;
  109.         }
  110.     }
  111. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top