#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const long long kMod = 1e9 + 7;
int jihe(int n)
{
int a;
a=(n*(n-1))/2;
return a%kMod;
}
int main()
{
long long n,a[5010],cnt=0,num,q,w,big=-1,i;
scanf("%lld",&n);
for( i=0;i<n;i++)
{
cin>>num;a[num]++;
big=max(big,num);
}
for(i=big;i>=2;i--)
{
if(a[i]>=2)
{
for(q=i-1,w=1;q>w;q--,w++)
{
if(a[q]>=1&&a[w]>=1)
cnt+=jihe(a[i])*(a[q]%kMod)*(a[w]%kMod);
}
if(q==w&&a[q]>=2)
cnt+=jihe(a[i])*jihe(a[q]);
}
}
cnt=cnt%kMod;
cout<<cnt;
return 0;
}
是一些细节错了么,大佬帮忙看看,萌新刚入门