Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- def merge_sort(list_1, list_2):
- global k
- if isinstance(list_1, int):
- list_1 = [list_1]
- if isinstance(list_2, int):
- list_2 = [list_2]
- n1, n2 = len(list_1), len(list_2)
- new_list = []
- i_1, i_2 = 0, 0
- for i in range(n1 + n2 - 1):
- if list_1[i_1] <= list_2[i_2]:
- new_list.append(list_1[i_1])
- i_1 += 1
- if i_1 == n1:
- new_list = new_list + list_2[i_2:]
- break
- else:
- k += n1 - i_1
- new_list.append(list_2[i_2])
- i_2 += 1
- if i_2 == n2:
- new_list = new_list + list_1[i_1:]
- break
- return new_list
- def main():
- global k
- file = sys.stdin
- n = int(file.readline())
- range_numbers = list(map(int, file.readline().strip().split()))
- l = 0
- for i in range(n-1):
- if l >= n-1:
- l = 0
- n -= 1
- first_element = range_numbers[l]
- second_element = range_numbers[l+1]
- range_numbers = range_numbers[:l] + [merge_sort(first_element, second_element)] + range_numbers[l+2:]
- l += 1
- print(k)
- if __name__ == "__main__":
- k = 0
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement