import sys
readline = sys.stdin.readline

N = int(readline())
L = sorted(list(map(int,readline().split())))

# 2本固定すると、もう一本として選べるのは、2本の和より長いものだけ
# これを二分探索で数える

import bisect
ans = 0
for i in range(N - 1):
  for j in range(i + 1,N):
    ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j
        
print(ans) import sys sys readline = sys.stdin.readline readline sys.stdin.readline sys.stdin sys stdin readline N = int(readline()) N int(readline()) int readline() readline L = sorted(list(map(int,readline().split()))) L sorted(list(map(int,readline().split()))) sorted list(map(int,readline().split())) list map(int,readline().split()) map int readline().split() ().split () readline split import bisect bisect ans = 0 ans 0 for i in range(N - 1):
  for j in range(i + 1,N):
    ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j
         i range(N - 1) range N - 1 N 1 for j in range(i + 1,N):
    ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j
         j range(i + 1,N) range i + 1 i 1 N ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j ans bisect.bisect_left(L, L[i] + L[j]) - 1 - j bisect.bisect_left(L, L[i] + L[j]) - 1 bisect.bisect_left(L, L[i] + L[j]) bisect.bisect_left bisect bisect_left L L[i] + L[j] L[i] L i L[j] L j 1 j print(ans) print ans readline = sys.stdin.readline sys.stdin.readline readline ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j bisect.bisect_left(L, L[i] + L[j]) - 1 - j ans N = int(readline()) int(readline()) N ans = 0 0 ans L = sorted(list(map(int,readline().split()))) sorted(list(map(int,readline().split()))) L
import sys
readline = sys.stdin.readline

N = int(readline())
L = sorted(list(map(int,readline().split())))

# 2本固定すると、もう一本として選べるのは、2本の和より長いものだけ
# これを二分探索で数える

import bisect
ans = 0
for i in range(N - 1):
  for j in range(i + 1,N):
    ans += bisect.bisect_left(L, L[i] + L[j]) - 1 - j
        
print(ans)