Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }