Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- namespace _03.Bombs
- {
- class Program
- {
- static void Main(string[] args)
- {
- int num = int.Parse(Console.ReadLine());
- int[,] matrix = new int[num, num];
- int aliveCount = 0;
- int aliveSum = 0;
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- int[] line = Console.ReadLine().Split(new char[] {' ' }).Select(int.Parse).ToArray();
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- matrix[i, j] = line[j];
- }
- }
- string[] bombs = Console.ReadLine().Split(new char[] { ' ', },StringSplitOptions.RemoveEmptyEntries);
- for (int i = 0; i < bombs.Length; i++)
- {
- int row = int.Parse(bombs[i][0].ToString());
- int column = int.Parse(bombs[i][2].ToString());
- int value = matrix[row, column];
- if (value <= 0)
- {
- continue;
- }
- //up
- if (row - 1 >= 0)
- {
- int targetNum = matrix[row - 1, column];
- if (targetNum > 0)
- {
- matrix[row - 1, column] -= value;
- }
- }
- //leftUpDiagonal
- if (row - 1 >= 0 && column - 1 >= 0)
- {
- int targetNum = matrix[row - 1, column - 1];
- if (targetNum > 0)
- {
- matrix[row - 1, column-1] -= value;
- }
- }
- //rightUpDiagonal
- if (row - 1 >= 0 && column + 1 < matrix.GetLength(0))
- {
- int targetNum = matrix[row - 1, column + 1];
- if (targetNum > 0)
- {
- matrix[row - 1, column + 1]-=value;
- }
- }
- //left
- if (column - 1 >= 0)
- {
- int targetNum = matrix[row, column - 1];
- if (targetNum > 0)
- {
- matrix[row, column - 1]-=value;
- }
- }
- //right
- if (column + 1 < matrix.GetLength(0))
- {
- int targetValue = matrix[row, column+1];
- if (targetValue > 0)
- {
- matrix[row, column + 1] -= value;
- }
- }
- //downLeftDiagonal
- if (column - 1 >= 0 && row + 1 < matrix.GetLength(0))
- {
- int targetValue = matrix[row + 1, column - 1] = matrix[row + 1, column - 1];
- if (targetValue > 0)
- {
- matrix[row + 1, column - 1] -= value;
- }
- }
- //down
- if (row + 1 < matrix.GetLength(0))
- {
- int targetValue = matrix[row + 1, column];
- if (targetValue > 0)
- {
- matrix[row + 1, column] -= value;
- }
- }
- //downRightDiagonal
- if (row + 1 < matrix.GetLength(0) && column + 1 < matrix.GetLength(0))
- {
- int targetValue = matrix[row + 1, column + 1];
- if (targetValue > 0)
- {
- matrix[row + 1, column + 1] -= value;
- }
- }
- matrix[row, column] = 0;
- }
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- if (matrix[i, j] > 0)
- {
- aliveCount++;
- aliveSum += matrix[i, j];
- }
- }
- }
- Console.WriteLine($"Alive cells: {aliveCount}");
- Console.WriteLine($"Sum: {aliveSum}");
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- Console.Write(matrix[i,j]+" ");
- }
- Console.WriteLine();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement