Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- input_filepath = 'input.txt'
- # open input file and make 2 lists of strings
- with open(input_filepath) as input_file:
- text = input_file.read()
- two_lists = text.split('\n')
- number_items = two_lists[0]
- list_of_items = two_lists[1].split(' ')
- list_of_items = [int(item) for item in list_of_items]
- nums = [[item] for item in list_of_items]
- indexes = [i for i in range(1, len(nums) + 1)]
- print(indexes)
- def merge(left, right):
- """Merge two lists in ascending order."""
- lst = []
- while left and right:
- if left[0] < right[0]:
- lst.append(left.pop(0))
- else:
- lst.append(right.pop(0))
- if left:
- lst.extend(left)
- if right:
- lst.extend(right)
- return lst
- j = 0
- n = len(nums)
- indout = []
- nums_out = []
- while j < n / 2:
- newlst = []
- newind = []
- i = 0
- while i < len(nums):
- print(indexes[i])
- x = merge(nums[i], nums[i + 1])
- nums_out.append(x[0])
- nums_out.append(x[-1])
- newlst.append(x)
- newind.append(indexes[i])
- newind.append(indexes[i + 1])
- indout.append(indexes[i])
- indout.append(indexes[i + 1])
- i += 2
- j += 1
- nums = newlst[:]
- indexes = []
- indexes.append(newind[0])
- indexes.append(newind[-1])
- digits = [str(i) for i in nums[0]]
- last_line = ' '.join(digits)
- all_lines = []
- k = 0
- while k < len(indout):
- one_line = []
- one_line.append(indout[k])
- one_line.append(indout[k + 1])
- one_line.append(nums_out[k])
- one_line.append(nums_out[k + 1])
- tmp_str = [str(i) for i in one_line]
- all_lines.append(tmp_str)
- k += 2
- str_lines = [' '.join(i) for i in all_lines]
- answer = '\n'.join(str_lines) + '\n' + last_line
- print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement