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; }