Cod sursa(job #1688718)
Utilizator | Data | 13 aprilie 2016 18:07:38 | |
---|---|---|---|
Problema | Medie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
#include <algorithm>
#define nmax 10005
using namespace std;
long long sol;
int n,val,a[nmax];
int v[nmax];
int main()
{
int i,j;
freopen("medie.in","r",stdin);
freopen("medie.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) {
scanf("%d",&v[i]);
a[v[i]]++;
val=max(val,v[i]);
}
for (i=0;i<=val;i++)
if (a[i]>=3)
sol+=1LL*a[i]*(a[i]-1)*(a[i]-2)/2;
for (i=0;i<=val;i++)
for (j=i+2;j<=val;j+=2)
sol+=1LL*a[i]*a[j]*(a[(i+j)>>1]);
printf("%lld",sol);
return 0;
}