public int QuickWayUp() { var queue = new Queue <int>(); var visited = new Dictionary <int, int>(); queue.Enqueue(1); visited.Add(1, 0); while (queue.Count != 0) { var el = queue.Dequeue(); if (el == 100) { return(visited[el]); } for (int i = 1; i <= 6; i++) { var next = el + i; if (next > 100) { continue; } if (Snakedict.ContainsKey(next)) { next = Snakedict[next]; } else if (Ladderdict.ContainsKey(next)) { next = Ladderdict[next]; } if (!visited.ContainsKey(next)) { visited.Add(next, visited[el] + 1); queue.Enqueue(next); } else if (visited[el] + 1 < visited[next]) { visited[next] = visited[el] + 1; } } } return(-1); }
public void GetInput() { var lCount = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < lCount; i++) { var lInputs = Console.ReadLine().Split(' ').Select(x => Convert.ToInt32(x)).ToArray();; Ladderdict.Add(lInputs[0], lInputs[1]); } var sCount = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < sCount; i++) { var sInputs = Console.ReadLine().Split(' ').Select(x => Convert.ToInt32(x)).ToArray();; Snakedict.Add(sInputs[0], sInputs[1]); } }