private static void Merge(MyDisjointSet set, Query[] queries) { using (var sw = new StreamWriter(@"tests/116.a")) { foreach (var query in queries) { set.Union(query.Destination - 1, query.Source - 1); sw.WriteLine(set.GetLongestTableSize()); } } }
public static void Main() { using (var sr = new StreamReader(@"tests/116")) { var tablesAndQueries = sr.ReadLine()?.Split(' ').Select(long.Parse).ToList(); var tablesQuantity = tablesAndQueries.First(); var queriesQuantity = tablesAndQueries.Last(); var rowsSizes = sr.ReadLine()?.Split(' ').Select(long.Parse).ToArray(); var set = new MyDisjointSet(tablesQuantity, rowsSizes); var queries = new Query[queriesQuantity]; for (var i = 0; i < queriesQuantity; i++) { var pair = sr.ReadLine()?.Split(' '); queries[i] = new Query(long.Parse(pair[1]), long.Parse(pair[0])); } Merge(set, queries); } }