Esempio n. 1
0
 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());
         }
     }
 }
Esempio n. 2
0
 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);
     }
 }