示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
                }
            }
        }