Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Linq;
- class Program
- {
- static void Main(string[] args)
- {
- #if DEBUG
- Console.SetIn(new StreamReader("../../../input.txt"));
- #endif
- int blurAmount = int.Parse(Console.ReadLine());
- int[] dimensions = Console.ReadLine()
- .Split()
- .Select(int.Parse)
- .ToArray();
- long[,] pixelMatrix = ReadMatrix(dimensions);
- int[] target = Console.ReadLine()
- .Split()
- .Select(int.Parse)
- .ToArray();
- BlurMatrix(blurAmount, dimensions, pixelMatrix, target);
- PrintMatrix(pixelMatrix, dimensions);
- }
- private static long[,] ReadMatrix(int[] dimensions)
- {
- var pixelMatrix = new long[dimensions[0], dimensions[1]];
- for (int row = 0; row < dimensions[0]; row++)
- {
- int[] values = Console.ReadLine()
- .Split()
- .Select(int.Parse)
- .ToArray();
- for (int col = 0; col < dimensions[1]; col++)
- pixelMatrix[row, col] = values[col];
- }
- return pixelMatrix;
- }
- private static void PrintMatrix(long[,] pixelMatrix, int[] dimensions)
- {
- for (int row = 0; row < dimensions[0]; row++)
- {
- for (int col = 0; col < dimensions[1]; col++)
- Console.Write(pixelMatrix[row, col] + " ");
- Console.WriteLine();
- }
- }
- private static void BlurMatrix(int blurAmount, int[] dimensions, long[,] pixelMatrix, int[] target)
- {
- int targetRow = target[0];
- int targetCol = target[1];
- pixelMatrix[targetRow, targetCol] += blurAmount;
- if (targetRow + 1 < dimensions[0])
- pixelMatrix[targetRow + 1, targetCol] += blurAmount;
- if (targetRow + 1 < dimensions[0] && targetCol + 1 < dimensions[1])
- pixelMatrix[targetRow + 1, targetCol + 1] += blurAmount;
- if (targetRow + 1 < dimensions[0] && targetCol - 1 >= 0)
- pixelMatrix[targetRow + 1, targetCol - 1] += blurAmount;
- if (targetCol + 1 < dimensions[1])
- pixelMatrix[targetRow, targetCol + 1] += blurAmount;
- if (targetCol - 1 >= 0)
- pixelMatrix[targetRow, targetCol - 1] += blurAmount;
- if (targetRow - 1 >= 0)
- pixelMatrix[targetRow - 1, targetCol] += blurAmount;
- if (targetRow - 1 >= 0 && targetCol + 1 < dimensions[1])
- pixelMatrix[targetRow - 1, targetCol + 1] += blurAmount;
- if (targetRow - 1 >= 0 && targetCol - 1 >= 0)
- pixelMatrix[targetRow - 1, targetCol - 1] += blurAmount;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment