### a<=b<=cととることとし、a,bを固定すると

### cは　c<a+b

from bisect import bisect_left

N = int(eval(input()))

lst = list(map(int, input().split()))

sor = sorted(lst)

res = 0

for i in range(N):

    for j in range(i+1, N):##ここでa<=bを満たしている

        ab = sor[i] + sor[j]

        highbound = bisect_left(sor, ab)

        res += highbound - j - 1

print(res)

### ライブラリを使おう！！！
### a<=b<=cととることとし、a,bを固定すると

### cは　c<a+b

from bisect import bisect_left

def main():

    N = int(eval(input()))

    lst = list(map(int, input().split()))

    sor = sorted(lst)

    res = 0

    for i in range(N):

        for j in range(i+1, N):##ここでa<=bを満たしている

            ab = sor[i] + sor[j]

            highbound = bisect_left(sor, ab)

            res += highbound - j - 1

    print(res)

main()

### ライブラリを使おう！！！
### a<=b<=cととることとし、a,bを固定すると
### cは　c<a+b
from bisect import bisect_left

N = int(eval(input()))
lst = list(map(int, input().split()))
sor = sorted(lst)
res = 0
for i in range(N):
    for j in range(i + 1, N):  ##ここでa<=bを満たしている
        ab = sor[i] + sor[j]
        highbound = bisect_left(sor, ab)
        res += highbound - j - 1
print(res)
### ライブラリを使おう！！！

### a<=b<=cととることとし、a,bを固定すると
### cは　c<a+b
from bisect import bisect_left


def main():
    N = int(eval(input()))
    lst = list(map(int, input().split()))
    sor = sorted(lst)
    res = 0
    for i in range(N):
        for j in range(i + 1, N):  ##ここでa<=bを満たしている
            ab = sor[i] + sor[j]
            highbound = bisect_left(sor, ab)
            res += highbound - j - 1
    print(res)


main()
### ライブラリを使おう！！！

-N = int(eval(input())) -lst = list(map(int, input().split())) -sor = sorted(lst) -res = 0 -for i in range(N): -    for j in range(i + 1, N):  ##ここでa<=bを満たしている -        ab = sor[i] + sor[j] -        highbound = bisect_left(sor, ab) -        res += highbound - j - 1 -print(res) + +def main(): +    N = int(eval(input())) +    lst = list(map(int, input().split())) +    sor = sorted(lst) +    res = 0 +    for i in range(N): +        for j in range(i + 1, N):  ##ここでa<=bを満たしている +            ab = sor[i] + sor[j] +            highbound = bisect_left(sor, ab) +            res += highbound - j - 1 +    print(res) + + +main()