public static void Main()
Console.WriteLine("Hello World");
int[][] positions = new int[][] {
var result = robot.IsValidTime(positions, 2);
Console.WriteLine("Result :" + result);
positions = new int[][] {
result = robot.IsValidTime(positions,2);
Console.WriteLine("Result :" + result);
positions = new int[][] {
new int[] {1,0,0,1,0,0,1},
new int[] {1,0,1,0,0,1,0},
new int[] {0,1,1,0,1,0,0},
new int[] {0,0,1,1,1,0,0},
new int[] {0,0,0,1,1,1,0},
result = robot.IsValidTime(positions,3);
Console.WriteLine("Result :" + result);
public bool IsValidTime(int[][] positions,int numOfRobots)
int rows = positions.GetLength(0);
int cols = positions[0].GetLength(0);
Console.WriteLine(string.Format("\n row: {0}, col {1}",rows, cols));
for(int i = 1; i< rows; i++)
if(!IsValidTime(positions[i-1], positions[i], numOfRobots ))
public bool IsValidTime(int [] prev, int[] next, int numOfRobots)
bool[] visited = new bool[prev.Length];
Console.WriteLine($"--------------");
for(int i = 0; i< prev.Length; i++)
Console.WriteLine($"--zero Prev: {prev[i]} ,Next: {next[i]}, I: {i}");
if(i-1 >= 0 && next[i-1] == 1 && !visited[i-1])
Console.WriteLine($"--Prev: {prev[i]} ,Next: {next[i-1]}, I: {i}");
if(prev[i] == next[i] && !visited[i])
Console.WriteLine($"--No Move Prev: {prev[i]} ,Next: {next[i]}, I: {i}");
if(i+1 < prev.Length && next[i+1] == 1 && !visited[i+1])
Console.WriteLine($"--Prev: {prev[i]} ,Next: {next[i+1]}, I: {i}");