Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. input_filepath = 'input.txt'
  2.  
  3. # open input file and make 2 lists of strings
  4. with open(input_filepath) as input_file:
  5.     text = input_file.read()
  6.     two_lists = text.split('\n')
  7.     number_items = two_lists[0]
  8.     list_of_items = two_lists[1].split(' ')
  9.  
  10. list_of_items = [int(item) for item in list_of_items]
  11.  
  12. nums = [[item] for item in list_of_items]
  13. indexes = [i for i in range(1, len(nums) + 1)]
  14.  
  15. print(indexes)
  16.  
  17. def merge(left, right):
  18.     """Merge two lists in ascending order."""
  19.     lst = []
  20.     while left and right:
  21.         if left[0] < right[0]:
  22.             lst.append(left.pop(0))
  23.         else:
  24.             lst.append(right.pop(0))
  25.     if left:
  26.         lst.extend(left)
  27.     if right:
  28.         lst.extend(right)
  29.     return lst
  30.  
  31. j = 0
  32. n = len(nums)
  33. indout = []
  34. nums_out = []
  35.  
  36. while j < n / 2:
  37.     newlst = []
  38.     newind = []
  39.     i = 0
  40.     while i < len(nums):
  41.         print(indexes[i])
  42.         x = merge(nums[i], nums[i + 1])
  43.         nums_out.append(x[0])
  44.         nums_out.append(x[-1])
  45.         newlst.append(x)
  46.         newind.append(indexes[i])
  47.         newind.append(indexes[i + 1])
  48.         indout.append(indexes[i])
  49.         indout.append(indexes[i + 1])
  50.         i += 2
  51.  
  52.     j += 1
  53.     nums = newlst[:]
  54.  
  55.     indexes = []
  56.     indexes.append(newind[0])
  57.     indexes.append(newind[-1])
  58.  
  59. digits = [str(i) for i in nums[0]]
  60. last_line = ' '.join(digits)
  61.  
  62. all_lines = []
  63. k = 0
  64. while k < len(indout):
  65.     one_line = []
  66.     one_line.append(indout[k])
  67.     one_line.append(indout[k + 1])
  68.     one_line.append(nums_out[k])
  69.     one_line.append(nums_out[k + 1])
  70.     tmp_str = [str(i) for i in one_line]
  71.     all_lines.append(tmp_str)
  72.     k += 2
  73.  
  74. str_lines = [' '.join(i) for i in all_lines]
  75. answer = '\n'.join(str_lines) + '\n' + last_line
  76. print(answer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement