static void Main(string[] args) { int n, h, t; string input = Console.ReadLine(); BF bf = new BF(); List <string> students = new List <string>(); n = int.Parse(input); for (int i = 0; i < n; i++) { input = Console.ReadLine(); string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); students.Add(splitString[0]); bf.AddPath(splitString[0], splitString[0]); //V.Add(splitString[0], new BF.City()); } input = Console.ReadLine(); h = int.Parse(input); for (int i = 0; i < h; i++) { input = Console.ReadLine(); string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); bf.AddPath(splitString[0], splitString[1]); //bf.E.Add(new Path(splitString[0], splitString[1], students[splitString[1]])); //bf.D.Add(splitString[0], E); } input = Console.ReadLine(); t = int.Parse(input); List <string> trips = new List <string>(); for (int i = 0; i < t; i++) { input = Console.ReadLine(); //string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); trips.Add(input); //trips.Add(splitString[0]); //trips.Add(splitString[1]); } double result; for (int i = 0; i < trips.Count; i++) { result = bf.BellmanFord(trips[i]); if (result == int.MaxValue) { Console.WriteLine("NO"); } else { Console.WriteLine(result); } } }
static void Main(string[] args) { int n, h, t; string input = Console.ReadLine(); BF bf = new BF(); Dictionary <string, double> cities = new Dictionary <string, double>(); n = int.Parse(input); for (int i = 0; i < n; i++) { input = Console.ReadLine(); string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); cities.Add(splitString[0], Convert.ToDouble(splitString[1])); bf.AddHighway(splitString[0], splitString[0], Convert.ToDouble(splitString[1])); //V.Add(splitString[0], new BF.City()); } input = Console.ReadLine(); h = int.Parse(input); for (int i = 0; i < h; i++) { input = Console.ReadLine(); string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); bf.AddHighway(splitString[0], splitString[1], cities[splitString[1]]); //bf.E.Add(new Highway(splitString[0], splitString[1], cities[splitString[1]])); //bf.D.Add(splitString[0], E); } input = Console.ReadLine(); t = int.Parse(input); List <string> trips = new List <string>(); for (int i = 0; i < t; i++) { input = Console.ReadLine(); string[] splitString = input.Split(new char[] { ' ' }, StringSplitOptions.None); trips.Add(splitString[0]); trips.Add(splitString[1]); } double result; for (int i = 0; i < trips.Count; i += 2) { result = bf.BellmanFord(trips[i], trips[i + 1]); if (result == int.MaxValue) { Console.WriteLine("NO"); } else { Console.WriteLine(result); } } }