#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e6+10;
const ll MOD=1e9 + 7;
ll n,ans;
ll a[N];
struct z// 记录可配对的木棒
{
ll X,D;
#define X(i) MM[i].X
#define D(i) MM[i].D
}MM[N];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
ll js=2,t=0;
for(int i=1;i<=n;i++)
{
int pd=0;
for(int j=js;j<=n;j++)
{
if(a[j]==a[i]*2)
{
if(pd==0) t++;
D(t)++;
js=j;
pd=1;
}
else if(pd==1) break;
}
if(pd==1)
{
for(int k=i;k<=n;k++)
{
if(a[i]==a[k]) X(t)++,i++;
else break;
}
}
}
for(int i=1;i<=t;i++)
{
if(D(i)>=2&&X(i)>=2)
{
ans+=(((D(i)*(D(i)-1))/2) * (X(i)*(X(i)-1)/2))%MOD;
}
ans%=MOD;
}
cout<<ans%MOD<<endl;
return 0;
}