Pagini recente » Cod sursa (job #2328737) | Cod sursa (job #373912) | Cod sursa (job #1911678) | Cod sursa (job #1605447) | Cod sursa (job #2753611)
class IO:
def __init__(self, input_file="mergeheap.in", output_file="mergeheap.out"):
self.input_file = input_file
self.output_file = output_file
self.heaps = {}
def convert_array_to_int(self, arr):
arr = arr.strip("\n ").split(" ")
return list(map(lambda x: int(x), arr))
def read(self):
file = open(self.input_file)
first_line = file.readline()
[N, Q] = self.convert_array_to_int(first_line)
for i in range(Q):
line = file.readline()
args = self.convert_array_to_int(line)
operation = args[0]
if (operation == 1):
heap_num = args[1]
elem = args[2]
# if (not heap_num in self.heaps):
# self.heaps[heap_num] = FibonacciHeap()
# self.heaps[heap_num].insert(elem)
# else:
# self.heaps[heap_num].insert(elem)
print(f"HEAP: {heap_num}", f"elem: {elem}")
# print(self.heaps[heap_num].root_list)
elif operation == 2:
heap_num = args[1]
# minimum = self.heaps[heap_num].extract_min()
print(heap_num)
else:
heap1 = args[1]
heap2 = args[2]
# print(self.heaps.keys())
# if self.heaps[heap1].find_min().key < self.heaps[heap2].find_min().key:
# self.heaps[heap1] = self.heaps[heap1].merge(self.heaps[heap2])
# self.heaps.pop(heap2)
# else:
# self.heaps[heap2] = self.heaps[heap2].merge(self.heaps[heap1])
# self.heaps.pop(heap1)
print(heap1, heap2)
if __name__ == "__main__":
#f = FibonacciHeap()
# f.insert(10)
# f.insert(2)
# f.insert(15)
# f.insert(6)
# m = f.extract_min()
# print(m.key)
# m = f.extract_min()
# print(m.key)
io = IO()
io.read()