#include<stdio.h>
const int mod = 1e9 + 7;
int CombinationNumber(int x)
{
return x * (x - 1) / 2;
}
int main()
{
int n, a;
int len[5000] = { 0, };
int sum=0;
scanf("%d", &n);
int max = 0, min = 5000;
for (int i = 0; i < n; ++i)
{
scanf("%d", &a);
len[a]++;
if (a > max) max = a;
if (a < min) min = a;
}
for (int i = min + 1; i <= max; ++i)
{
if (len[i] >= 2)
{
for (int j = min; j <= i / 2; ++j)
{
if (len[j] > 0 && len[i - j] > 0)
if (i = 2 * j)
sum =(sum+ ((CombinationNumber(len[i])%mod) * (CombinationNumber(len[j]) % mod)))%mod;
else sum =(sum+ (CombinationNumber(len[i]) % mod) * (len[j] % mod) * (len[i - j] % mod))%mod;
}
}
}
printf("%d", sum);
return 0;
}
如题