Example #1
0
            public void Solve()
            {
                var N       = NextInt();
                var kruskal = new Kruskal(N);

                var xlist = new List <ti2>();
                var ylist = new List <ti2>();


                for (int i = 0; i < N; i++)
                {
                    xlist.Add(NextInt(), i);
                    ylist.Add(NextInt(), i);
                }

                xlist = xlist.OrderBy(x => x.Item1).ToList();
                ylist = ylist.OrderBy(x => x.Item1).ToList();

                var list = new List <ti3>();

                for (int i = 0; i < N - 1; i++)
                {
                    {
                        var s = xlist[i];
                        var t = xlist[i + 1];
                        kruskal.Add(s.Item2, t.Item2, t.Item1 - s.Item1);
                    }
                    {
                        var s = ylist[i];
                        var t = ylist[i + 1];
                        kruskal.Add(s.Item2, t.Item2, t.Item1 - s.Item1);
                    }
                }

                kruskal.Run().WL();
                return;
            }