
def findnumberofTriangles(arr): 
	n = len(arr) 
	arr.sort() 
	count = 0
	for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	return count 

n = int(input())
arr=[int(x) for x in input().split()]
print(findnumberofTriangles(arr))
 def findnumberofTriangles(arr): 
	n = len(arr) 
	arr.sort() 
	count = 0
	for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	return count  findnumberofTriangles n = len(arr) n len(arr) len arr arr.sort() arr.sort arr sort count = 0 count 0 for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	 i range(0, n-2) range 0 n-2 n 2 k = i + 2 k i + 2 i 2 for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	 j range(i + 1, n) range i + 1 i 1 n while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			 k < n and arr[i] + arr[j] > arr[k] k < n k n arr[i] + arr[j] > arr[k] arr[i] + arr[j] arr[i] arr i arr[j] arr j arr[k] arr k k += 1 k 1 if(k>j): 
				count += k - j - 1

	 k>j k j count += k - j - 1 count k - j - 1 k - j k j 1 return count count arr arr n = int(input()) n int(input()) int input() input int(x) for x in input().split() for x in input().split() x input().split() ().split () input split for x in input().split() int(x) int x arr=[int(x) for x in input().split()] arr [int(x) for x in input().split()] print(findnumberofTriangles(arr)) print findnumberofTriangles(arr) findnumberofTriangles arr def findnumberofTriangles(arr): 
	n = len(arr) 
	arr.sort() 
	count = 0
	for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	return count  def findnumberofTriangles(arr): 
	n = len(arr) 
	arr.sort() 
	count = 0
	for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	return count  findnumberofTriangles arr=[int(x) for x in input().split()] [int(x) for x in input().split()] arr n = int(input()) int(input()) n

def findnumberofTriangles(arr): 
	n = len(arr) 
	arr.sort() 
	count = 0
	for i in range(0, n-2):  
		k = i + 2 
		for j in range(i + 1, n):  
			while (k < n and arr[i] + arr[j] > arr[k]): 
				k += 1
			if(k>j): 
				count += k - j - 1

	return count 

n = int(input())
arr=[int(x) for x in input().split()]
print(findnumberofTriangles(arr))

