using System.Collections.Generic;
private static void GetConnections(int[,] board,int x,int y,List<(int,int)> points, HashSet<(int,int)> ch)
var explodeVal=board[x,y];
var width=board.GetLength(0);
var height=board.GetLength(1);
GetConnections(board,x-1,y,points,ch);
GetConnections(board,x+1,y,points,ch);
GetConnections(board,x,y-1,points,ch);
GetConnections(board,x,y+1,points,ch);
public static void Explode(int[,] board,int x,int y)
var width=board.GetLength(0);
var height=board.GetLength(1);
private static void MoveDownLine(int[,] board,int x)
var width=board.GetLength(0);
var q = new Queue<int>();
for(var y=width-1;y>=0;y--)
for(var y=width-1;y>=0;y--)
if(q.TryDequeue(out var val))
private static void UpdateMap(int[,] board)
var d=board.GetLength(1);
private static void PrintMap(int[,] board)
var height = board.GetLength(0);
var width = board.GetLength(1);
for(var y=0;y<height;y++)
Console.Write(board[y,x]);
public static void Main()
var points = new List<(int,int)>();
var ch = new HashSet<(int,int)>();
GetConnections(board,2,2,points,ch);
foreach(var it in points)
board[it.Item1,it.Item2]=0;