public static int SemiConnected0(DirectedGraph g)
        {
            Algorithms.FloydWarshal fw = new Algorithms.FloydWarshal(g);

            int il = fw.dist.GetLength(0);
            int jl = fw.dist.GetLength(1);

            //for (int i = 0; i < il; i++)
            //{
            //    for (int j = 0; j < jl; j++)
            //    {
            //        Console.Write(fw.dist[i, j] + " ");
            //    }
            //    Console.WriteLine();
            //}
            //Console.WriteLine();

            bool res;

            for (int i = 0; i < il; i++)
            {
                res = true;
                for (int j = 0; j < jl; j++)
                {
                    if (fw.dist[i, j] == Int32.MaxValue / 4)
                    {
                        res = false;
                        break;
                    }
                }
                if (res)
                {
                    return(1);
                }
            }
            return(-1);
        }
        public static int SemiConnected0(DirectedGraph g)
        {
            Algorithms.FloydWarshal fw = new Algorithms.FloydWarshal(g);

            int il = fw.dist.GetLength(0);
            int jl = fw.dist.GetLength(1);

            //for (int i = 0; i < il; i++)
            //{
            //    for (int j = 0; j < jl; j++)
            //    {
            //        Console.Write(fw.dist[i, j] + " ");
            //    }
            //    Console.WriteLine();
            //}
            //Console.WriteLine();

            bool res;
            for (int i = 0; i < il; i++)
            {
                res = true;
                for (int j = 0; j < jl; j++)
                {
                    if (fw.dist[i,j] == Int32.MaxValue / 4)
                    {
                        res = false;
                        break;
                    }
                }
                if (res)
                {
                    return 1;
                }
            }
            return -1;
        }