不知道为什么不对,求助
#include <bits/stdc++.h>
using namespace std;
int a[5005];
long long t,sum=0;
int main()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>t;
a[t]++;
}
for(int i=1; i<=2500; i++)
{
for(int j=i; j<=5000-i; j++)
{
int k1=a[i],k2=a[j],k3=a[i+j];
if(i==j&&k1>=2&&k3>=2)
{
t=(k1*(k1-1)/2)*(k3*(k3-1)/2)%1000000007;
}
if(i!=j&&k1>=1&&k2>=1&&k3>=2)
{
t=(k1*k2*(k3*(k3-1)/2))%1000000007;
}
sum+=t;
sum=sum%1000000007;
}
}
cout<<sum<<endl;
return 0;
}