def count_inversion(alist):
count = 0
if len(alist)>1:
mid = len(alist)//2
lefthalf = alist[:mid]
righthalf = alist[mid:]
# streo inversion count
count+=count_inversion(lefthalf)
count+=count_inversion(righthalf)
i=0
j=0
k=0
track = 0
while i < len(lefthalf) and j < len(righthalf):
if lefthalf[i] < righthalf[j]:
alist[k]=lefthalf[i]
i=i+1
else:
alist[k]=righthalf[j]
j=j+1
# updated line
count+=len(lefthalf[i:])
k=k+1
while i < len(lefthalf):
alist[k]=lefthalf[i]
i=i+1
k=k+1
while j < len(righthalf):
alist[k]=righthalf[j]
j=j+1
k=k+1
return count
def main():
alist = [10,9,8,7,6,5,4,3,2,1]
inversion = count_inversion(alist)
print(alist)
print(inversion)
main()
ZGVmIGNvdW50X2ludmVyc2lvbihhbGlzdCk6CiAgICBjb3VudCA9IDAKICAgIGlmIGxlbihhbGlzdCk+MToKICAgICAgICBtaWQgPSBsZW4oYWxpc3QpLy8yCiAgICAgICAgbGVmdGhhbGYgPSBhbGlzdFs6bWlkXQogICAgICAgIHJpZ2h0aGFsZiA9IGFsaXN0W21pZDpdCiAgICAgICAgIyBzdHJlbyBpbnZlcnNpb24gY291bnQgCiAgICAgICAgY291bnQrPWNvdW50X2ludmVyc2lvbihsZWZ0aGFsZikKICAgICAgICBjb3VudCs9Y291bnRfaW52ZXJzaW9uKHJpZ2h0aGFsZikKCiAgICAgICAgaT0wCiAgICAgICAgaj0wCiAgICAgICAgaz0wCiAgICAgICAgdHJhY2sgPSAwCiAgICAgICAgd2hpbGUgaSA8IGxlbihsZWZ0aGFsZikgYW5kIGogPCBsZW4ocmlnaHRoYWxmKToKICAgICAgICAgICAgaWYgbGVmdGhhbGZbaV0gPCByaWdodGhhbGZbal06CiAgICAgICAgICAgICAgICBhbGlzdFtrXT1sZWZ0aGFsZltpXQogICAgICAgICAgICAgICAgaT1pKzEKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgYWxpc3Rba109cmlnaHRoYWxmW2pdCiAgICAgICAgICAgICAgICBqPWorMQogICAgICAgICAgICAgICAgIyB1cGRhdGVkIGxpbmUKICAgICAgICAgICAgICAgIGNvdW50Kz1sZW4obGVmdGhhbGZbaTpdKQogICAgICAgICAgICBrPWsrMQoKICAgICAgICB3aGlsZSBpIDwgbGVuKGxlZnRoYWxmKToKICAgICAgICAgICAgYWxpc3Rba109bGVmdGhhbGZbaV0KICAgICAgICAgICAgaT1pKzEKICAgICAgICAgICAgaz1rKzEKCiAgICAgICAgd2hpbGUgaiA8IGxlbihyaWdodGhhbGYpOgogICAgICAgICAgICBhbGlzdFtrXT1yaWdodGhhbGZbal0KICAgICAgICAgICAgaj1qKzEKICAgICAgICAgICAgaz1rKzEKCiAgICByZXR1cm4gY291bnQKCmRlZiBtYWluKCk6CiAgICBhbGlzdCA9IFsxMCw5LDgsNyw2LDUsNCwzLDIsMV0KICAgIGludmVyc2lvbiA9IGNvdW50X2ludmVyc2lvbihhbGlzdCkKICAgIHByaW50KGFsaXN0KQogICAgcHJpbnQoaW52ZXJzaW9uKSAgICAKCm1haW4oKQo=
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
45