N = int(input())
L = list(map(int,input().split()))

L = sorted(L)

import bisect

# 二本を決める
ans = 0
for i in range(N - 2):
  for j in range(i + 1, N - 1):
    # L[i] + L[j] より短い棒で且つjより大きいインデックスを数える
    ind = bisect.bisect_left(L, L[i] + L[j])
    num = ind - (j + 1)
    ans += max(num, 0)
    
print(ans) N = int(input()) N int(input()) int input() input L = list(map(int,input().split())) L list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split L = sorted(L) L sorted(L) sorted L import bisect bisect ans = 0 ans 0 for i in range(N - 2):
  for j in range(i + 1, N - 1):
    # L[i] + L[j] より短い棒で且つjより大きいインデックスを数える
    ind = bisect.bisect_left(L, L[i] + L[j])
    num = ind - (j + 1)
    ans += max(num, 0)
     i range(N - 2) range N - 2 N 2 for j in range(i + 1, N - 1):
    # L[i] + L[j] より短い棒で且つjより大きいインデックスを数える
    ind = bisect.bisect_left(L, L[i] + L[j])
    num = ind - (j + 1)
    ans += max(num, 0)
     j range(i + 1, N - 1) range i + 1 i 1 N - 1 N 1 ind = bisect.bisect_left(L, L[i] + L[j]) ind 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 num = ind - (j + 1) num ind - (j + 1) ind j + 1 j 1 ans += max(num, 0) ans max(num, 0) max num 0 print(ans) print ans num = ind - (j + 1) ind - (j + 1) num N = int(input()) int(input()) N ans = 0 0 ans ind = bisect.bisect_left(L, L[i] + L[j]) bisect.bisect_left(L, L[i] + L[j]) ind ans += max(num, 0) max(num, 0) ans L = sorted(L) sorted(L) L L = list(map(int,input().split())) list(map(int,input().split())) L
N = int(input())
L = list(map(int,input().split()))

L = sorted(L)

import bisect

# 二本を決める
ans = 0
for i in range(N - 2):
  for j in range(i + 1, N - 1):
    # L[i] + L[j] より短い棒で且つjより大きいインデックスを数える
    ind = bisect.bisect_left(L, L[i] + L[j])
    num = ind - (j + 1)
    ans += max(num, 0)
    
print(ans)