Give an O(n log k)-time algorithm that uses a min-heap of size no more than k to merge k SORTED lists into one sorted list, where n is the total number of elements in all input lists. Give your algorithmic idea and pseudocode and explain why your algorithm has a time cost of O(n log k). Explain how you will use your algorithm for mergesort if the mergesort has a setting of k-way splitting.