Cod sursa(job #321821)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 7 iunie 2009 15:01:32
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
int n,lim;
long long sol;
int v[9002];
int f[7002];

void rez()
{
	int i,j;
	for(i=1;i<=lim;i++)
	{
		sol=sol+(((long long)f[i]*(f[i]-1)*(f[i]-2))>>1);
		for(j=i+2;j<=lim;j=j+2)
			if(f[i] && f[j] && f[(i+j)>>1])
				sol=sol+(long long)f[i]*f[j]*f[(i+j)>>1];
	}
	printf("%lld\n",sol);
}

void read()
{
	freopen("medie.in","r",stdin);
	freopen("medie.out","w",stdout);
	scanf("%d",&n);
	int i;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		f[v[i]]++;
		if(v[i]>lim)
			lim=v[i];
	}
}

int main()
{
	read();
	rez();
	return 0;
}