Buggy python submission (verdict: Time Limit Exceeded):
import sys
from copy import deepcopy

F = sys.stdin
N, K = map(int, F.readline().strip("\n").split())
A = [None] * (N + 1)
A[0] = 0
A_order = {0}
for a in range(N):
    A[a+1] = int(F.readline().strip("\n")) - K + A[a]
    A_order |= {A[a+1]}
maxA = len(A_order)
A_order = list(A_order)
A_order.sort()

compressed_A = dict()
for i in range(maxA):
    compressed_A[A_order[i]] = i

bit = [0] * (maxA + 1)
total_inversion = 0
for a in A:
    b = compressed_A[a] + 1
    while b <= maxA + 1: 
        bit[b - 1] += 1
        b += b & -b

    #total sum
    upper = maxA + 1
    upper_sum = 0
    while upper > 0:
        upper_sum += bit[upper - 1]
        upper -= upper & -upper

    #lower sum
    lower = compressed_A[a] + 1
    lower_sum = 0
    while lower > 0:
        lower_sum += bit[lower - 1]
        lower -= lower & -lower

    total_inversion += upper_sum - lower_sum
 
print(N * (N + 1) // 2 - total_inversion)

Fixed submission:
import sys
from copy import deepcopy

F = sys.stdin
N, K = map(int, F.readline().strip("\n").split())
A = [None] * (N + 1)
A[0] = 0
A_order = {0}
for a in range(N):
    A[a+1] = int(F.readline().strip("\n")) - K + A[a]
    A_order |= {A[a+1]}
maxA = len(A_order)
A_order = list(A_order)
A_order.sort()

compressed_A = dict()
for i in range(maxA):
    compressed_A[A_order[i]] = i

bit = [0] * (maxA + 1)
total_inversion = 0
for i in range(N+1):
    b = compressed_A[A[i]] + 1
    while b <= maxA + 1: 
        bit[b - 1] += 1
        b += b & -b

    #lower sum
    lower = compressed_A[A[i]] + 1
    lower_sum = 0
    while lower > 0:
        lower_sum += bit[lower - 1]
        lower -= lower & -lower

    total_inversion += i + 1 - lower_sum
 
print(N * (N + 1) // 2 - total_inversion)

Buggy python submission (verdict: Time Limit Exceeded):
import sys
from copy import deepcopy
F = sys.stdin
N, K = map(int, F.readline().strip("\n").split())
A = [None] * (N + 1)
A[0] = 0
for a in range(N):
    A[a+1] = int(F.readline().strip("\n")) - K + A[a]
A_order = list(set(deepcopy(A)))
A_order.sort()

compressed_A = [None] * (N + 1)
for i in range(N + 1):
    compressed_A[i] = A_order.index(A[i])

maxA = len(A_order)
bit = [0] * (maxA + 1)
total_inversion = 0
for a in compressed_A:
    b = a + 1
    while b <= maxA + 1: 
        bit[b - 1] += 1
        b += b & -b

    #total sum
    upper = maxA + 1
    upper_sum = 0
    while upper > 0:
        upper_sum += bit[upper - 1]
        upper -= upper & -upper

    #lower sum
    lower = a + 1
    lower_sum = 0
    while lower > 0:
        lower_sum += bit[lower - 1]
        lower -= lower & -lower

    total_inversion += upper_sum - lower_sum
 
print(N * (N + 1) // 2 - total_inversion)

Fixed submission:
import sys
from copy import deepcopy

F = sys.stdin
N, K = map(int, F.readline().strip("\n").split())
A = [None] * (N + 1)
A[0] = 0
A_order = {0}
for a in range(N):
    A[a+1] = int(F.readline().strip("\n")) - K + A[a]
    A_order |= {A[a+1]}
maxA = len(A_order)
A_order = list(A_order)
A_order.sort()

compressed_A = dict()
for i in range(maxA):
    compressed_A[A_order[i]] = i

bit = [0] * (maxA + 1)
total_inversion = 0
for i in range(N+1):
    b = compressed_A[A[i]] + 1
    while b <= maxA + 1: 
        bit[b - 1] += 1
        b += b & -b

    #lower sum
    lower = compressed_A[A[i]] + 1
    lower_sum = 0
    while lower > 0:
        lower_sum += bit[lower - 1]
        lower -= lower & -lower

    total_inversion += i + 1 - lower_sum
 
print(N * (N + 1) // 2 - total_inversion)