#3本目を選ぶ時に2本目と同じ長さのものを選べることに注意する

import bisect

n=int(eval(input()))

l=sorted(list(map(int,input().split())))



cnt=0

for i in range(0,n-2):

    for j in range(i+1,n-1):

        p=bisect.bisect_right(l,l[i]+l[j]-1)

        cnt+=max(p-j-1,0)

print(cnt)

import bisect

n=int(eval(input()))

l=sorted(list(map(int,input().split())))



cnt=0

for i in range(0,n-2):

    for j in range(i+1,n-1):

        p=bisect.bisect_right(l,l[i]+l[j]-1)

        cnt+=p-j-1

print(cnt)

# 3本目を選ぶ時に2本目と同じ長さのものを選べることに注意する
import bisect

n = int(eval(input()))
l = sorted(list(map(int, input().split())))
cnt = 0
for i in range(0, n - 2):
    for j in range(i + 1, n - 1):
        p = bisect.bisect_right(l, l[i] + l[j] - 1)
        cnt += max(p - j - 1, 0)
print(cnt)

import bisect

n = int(eval(input()))
l = sorted(list(map(int, input().split())))
cnt = 0
for i in range(0, n - 2):
    for j in range(i + 1, n - 1):
        p = bisect.bisect_right(l, l[i] + l[j] - 1)
        cnt += p - j - 1
print(cnt)

-# 3本目を選ぶ時に2本目と同じ長さのものを選べることに注意する -        cnt += max(p - j - 1, 0) +        cnt += p - j - 1