Pagini recente » Cod sursa (job #519227) | Cod sursa (job #2842095) | Cod sursa (job #3279159) | Cod sursa (job #3214167) | Cod sursa (job #1122201)
#include <stdio.h>
using namespace std;
struct pct
{
long x,y;
};
long long cmb(long x)
{
long long j,i;
j=x-2;
long long p=1;
for (i=j;i<=x;i++)
p*=i;
p/=2;
return p;
}
long n,i,max,a[9001],m,j,sm,d,v[9001],nr;
long long s;
pct b[9001];
int main()
{
freopen ("medie.in","r",stdin);
freopen ("medie.out","w",stdout);
scanf ("%ld",&n);
max=-500000;
for (i=1;i<=n;i++)
{
scanf ("%ld",&a[i]);
v[a[i]]++;
if (a[i]>max)
max=a[i];
}
for (i=1;i<=max;i++)
if (v[i])
{
m++;
b[m].x=i;
b[m].y=v[i];
}
s=0;
for (i=1;i<=m;i++)
{
for (j=1;j<=i;j++)
{
d=b[i].x-b[j].x;
if (d==0)
{
if (b[i].y>2)
s+=cmb(b[i].y);
}
else
{
sm=0;
nr=b[i].x+d;
if (v[nr]>0)
sm=v[nr]*b[j].y;
s+=sm;
}
}
}
printf ("%lld",s);
return 0;
}