private int GetIndexOfOriginalList(List <MergingTables> tablesList, MergingTables table, int index) { int originalIndex = index; if (table.SymbolicLinkPath != null && table.SymbolicLinkPath.Any()) { var pathLength = table.SymbolicLinkPath.Count; originalIndex = table.SymbolicLinkPath[pathLength - 1]; } return(originalIndex); }
private static void ProcessMergingTableBruteForce(int[] rows, int mergeQueries) { var mergingTables = new MergingTables(); var getTablesList = mergingTables.GetTablesList(rows); long max; for (int i = 0; i < mergeQueries; i++) { var query = Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray(); mergingTables.PerformMergingOperation(query, getTablesList, out max); Console.WriteLine(max); } }
public List <MergingTables> GetTablesList(int[] rows) { List <MergingTables> tables = new List <MergingTables>(); MaximumRecords = rows[0]; for (int i = 0; i < rows.Length; i++) { var localMaximum = rows[i]; var table = new MergingTables(rows[i]); tables.Add(table); if (localMaximum > MaximumRecords) { MaximumRecords = localMaximum; } } return(tables); }