Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. import sys
  2.  
  3. def merge_sort(list_1, list_2):
  4.     global k
  5.     if isinstance(list_1, int):
  6.         list_1 = [list_1]
  7.     if isinstance(list_2, int):
  8.         list_2 = [list_2]
  9.  
  10.     n1, n2 = len(list_1), len(list_2)
  11.     new_list = []
  12.  
  13.     i_1, i_2 = 0, 0
  14.     for i in range(n1 + n2 - 1):
  15.         if list_1[i_1] <= list_2[i_2]:
  16.             new_list.append(list_1[i_1])
  17.             i_1 += 1
  18.             if i_1 == n1:
  19.                 new_list = new_list + list_2[i_2:]
  20.                 break
  21.         else:
  22.             k += n1 - i_1
  23.             new_list.append(list_2[i_2])
  24.             i_2 += 1
  25.             if i_2 == n2:
  26.                 new_list = new_list + list_1[i_1:]
  27.                 break
  28.     return new_list
  29.  
  30. def main():
  31.     global k
  32.     file = sys.stdin
  33.     n = int(file.readline())
  34.     range_numbers = list(map(int, file.readline().strip().split()))
  35.  
  36.     l = 0
  37.     for i in range(n-1):
  38.         if l >= n-1:
  39.             l = 0
  40.         n -= 1
  41.         first_element = range_numbers[l]
  42.         second_element = range_numbers[l+1]
  43.         range_numbers = range_numbers[:l] + [merge_sort(first_element, second_element)] + range_numbers[l+2:]
  44.         l += 1
  45.     print(k)
  46.  
  47. if __name__ == "__main__":
  48.     k = 0
  49.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement