Advertisement
Guest User

Bombs

a guest
Dec 17th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.65 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace _03.Bombs
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int num = int.Parse(Console.ReadLine());
  11.  
  12.             int[,] matrix = new int[num, num];
  13.             int aliveCount = 0;
  14.             int aliveSum = 0;
  15.             for (int i = 0; i < matrix.GetLength(0); i++)
  16.             {
  17.                 int[] line = Console.ReadLine().Split(new char[] {' ' }).Select(int.Parse).ToArray();
  18.  
  19.                 for (int j = 0; j < matrix.GetLength(1); j++)
  20.                 {
  21.                     matrix[i, j] = line[j];
  22.  
  23.                 }
  24.  
  25.  
  26.  
  27.             }
  28.  
  29.             string[] bombs = Console.ReadLine().Split(new char[] { ' ', },StringSplitOptions.RemoveEmptyEntries);
  30.  
  31.  
  32.  
  33.             for (int i = 0; i < bombs.Length; i++)
  34.             {
  35.                 int row = int.Parse(bombs[i][0].ToString());
  36.                 int column = int.Parse(bombs[i][2].ToString());
  37.  
  38.                 int value = matrix[row, column];
  39.  
  40.                 if (value <= 0)
  41.                 {
  42.                     continue;
  43.                 }
  44.  
  45.                 //up
  46.                 if (row - 1 >= 0)
  47.                 {
  48.                     int targetNum = matrix[row - 1, column];
  49.  
  50.                     if (targetNum > 0)
  51.                     {
  52.                         matrix[row - 1, column] -= value;
  53.  
  54.                     }
  55.  
  56.                 }
  57.  
  58.                 //leftUpDiagonal
  59.  
  60.                 if (row - 1 >= 0 && column - 1 >= 0)
  61.                 {
  62.                     int targetNum = matrix[row - 1, column - 1];
  63.  
  64.                     if (targetNum > 0)
  65.                     {
  66.                         matrix[row - 1, column-1] -= value;
  67.                     }
  68.                 }
  69.  
  70.                 //rightUpDiagonal
  71.                 if (row - 1 >= 0 && column + 1 < matrix.GetLength(0))
  72.                 {
  73.                     int targetNum = matrix[row - 1, column + 1];
  74.  
  75.                     if (targetNum > 0)
  76.                     {
  77.                         matrix[row - 1, column + 1]-=value;
  78.                     }
  79.                 }
  80.  
  81.                 //left
  82.                 if (column - 1 >= 0)
  83.                 {
  84.                     int targetNum = matrix[row, column - 1];
  85.  
  86.                     if (targetNum > 0)
  87.                     {
  88.                         matrix[row, column - 1]-=value;
  89.                     }
  90.                 }
  91.  
  92.                 //right
  93.                 if (column + 1 < matrix.GetLength(0))
  94.                 {
  95.                     int targetValue = matrix[row, column+1];
  96.  
  97.                     if (targetValue > 0)
  98.                     {
  99.                         matrix[row, column + 1] -= value;
  100.                     }
  101.                 }
  102.  
  103.                 //downLeftDiagonal
  104.  
  105.                 if (column - 1 >= 0 && row + 1 < matrix.GetLength(0))
  106.                 {
  107.                     int targetValue = matrix[row + 1, column - 1] = matrix[row + 1, column - 1];
  108.  
  109.                     if (targetValue > 0)
  110.                     {
  111.                         matrix[row + 1, column - 1] -= value;
  112.                     }
  113.                 }
  114.  
  115.                 //down
  116.  
  117.                 if (row + 1 < matrix.GetLength(0))
  118.                 {
  119.                     int targetValue = matrix[row + 1, column];
  120.  
  121.                     if (targetValue > 0)
  122.                     {
  123.                         matrix[row + 1, column] -= value;
  124.                     }
  125.                 }
  126.  
  127.                 //downRightDiagonal
  128.  
  129.  
  130.                 if (row + 1 < matrix.GetLength(0) && column + 1 < matrix.GetLength(0))
  131.                 {
  132.                     int targetValue = matrix[row + 1, column + 1];
  133.  
  134.                     if (targetValue > 0)
  135.                     {
  136.                         matrix[row + 1, column + 1] -= value;
  137.                     }
  138.  
  139.                 }
  140.  
  141.                 matrix[row, column] = 0;
  142.             }
  143.  
  144.             for (int i = 0; i < matrix.GetLength(0); i++)
  145.             {
  146.  
  147.                 for (int j = 0; j < matrix.GetLength(1); j++)
  148.                 {
  149.                     if (matrix[i, j] > 0)
  150.                     {
  151.                         aliveCount++;
  152.                         aliveSum += matrix[i, j];
  153.                     }
  154.  
  155.                 }
  156.             }
  157.  
  158.             Console.WriteLine($"Alive cells: {aliveCount}");
  159.             Console.WriteLine($"Sum: {aliveSum}");
  160.  
  161.             for (int i = 0; i < matrix.GetLength(0); i++)
  162.             {
  163.                 for (int j = 0; j < matrix.GetLength(1); j++)
  164.                 {
  165.                     Console.Write(matrix[i,j]+" ");
  166.                 }
  167.                 Console.WriteLine();
  168.             }
  169.  
  170.         }
  171.     }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement