import bisect
N = int(input())

num_list = list(map(int,input().split()))
num_list.sort()
res = 0

for a in range(N-2):
    for b in range(a+1,N-1):
        k = bisect.bisect_left(num_list,num_list[a]+num_list[b])
        res += max(k-(b+1),0)
print(res) import bisect bisect N = int(input()) N int(input()) int input() input num_list = list(map(int,input().split())) num_list list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split num_list.sort() num_list.sort num_list sort res = 0 res 0 for a in range(N-2):
    for b in range(a+1,N-1):
        k = bisect.bisect_left(num_list,num_list[a]+num_list[b])
        res += max(k-(b+1),0) a range(N-2) range N-2 N 2 for b in range(a+1,N-1):
        k = bisect.bisect_left(num_list,num_list[a]+num_list[b])
        res += max(k-(b+1),0) b range(a+1,N-1) range a+1 a 1 N-1 N 1 k = bisect.bisect_left(num_list,num_list[a]+num_list[b]) k bisect.bisect_left(num_list,num_list[a]+num_list[b]) bisect.bisect_left bisect bisect_left num_list num_list[a]+num_list[b] num_list[a] num_list a num_list[b] num_list b res += max(k-(b+1),0) res max(k-(b+1),0) max k-(b+1) k b+1 b 1 0 print(res) print res k = bisect.bisect_left(num_list,num_list[a]+num_list[b]) bisect.bisect_left(num_list,num_list[a]+num_list[b]) k res = 0 0 res N = int(input()) int(input()) N res += max(k-(b+1),0) max(k-(b+1),0) res num_list = list(map(int,input().split())) list(map(int,input().split())) num_list
import bisect
N = int(input())

num_list = list(map(int,input().split()))
num_list.sort()
res = 0

for a in range(N-2):
    for b in range(a+1,N-1):
        k = bisect.bisect_left(num_list,num_list[a]+num_list[b])
        res += max(k-(b+1),0)
print(res)