#include<iostream>
#define mod 100000007
using namespace std;
long long C(int n,int m){
//在n个中选m个不重复的方案
long long a1=1,a2=1,a3=1;
for(int i=1;i<=n;i++)a1*=i;
for(int i=1;i<=m;i++)a2*=i;
for(int i=1;i<=n-m;i++)a3*=i;
return a1/(a2*a3);
}
long long a[5001],Min=0x7fffffff,Max=0,n,ans=0;
int main(){
cin>>n;
for(long long i=0;i<n;i++){
int x;cin>>x;
if(x>Max)Max=x;
if(x<Min)Min=x;
a[x]++;
}
for(long long i=Min;i<=Max;i++){
if(a[i]>=2&&i!=1){
int sum=a[i];
for(int j=Min;j<=i/2;j++){
if(i-j==j)sum+=C(a[j],2);
else if(a[j]>=1&&a[i-j]>=1)sum+=C(a[j]*a[i-j],1);
}
if(sum>=3)ans+=C(sum,3);ans%=mod;
}
}
cout<<ans%mod;
}