Cod sursa(job #70996)

Utilizator flionIonescu Ionut Florin flion Data 8 iulie 2007 20:49:39
Problema Medie Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>

#define vmaxim 7001

long long N, i, j, vmax, nr;

int V[vmaxim];

int main(void)
{
	freopen("medie.in", "r", stdin);
	freopen("medie.out", "w", stdout);

	scanf("%Ld", &N);

	for (i = 1; i <= N; ++i)
	{
	  scanf("%Ld", &j);
	  ++V[j];

	  if (j > vmax) vmax = j;
	}

	for (i = 1; i <= vmax; ++i)
	 for (j = i+2; j<= vmax; j+=2)
	   if (V[i] && V[j])
	     nr+= V[(i+j)>>1];

	for (i = 1; i <= vmax; ++i)
	     nr+= (V[i]*(V[i]-1)*(V[i]-2))>>1;

	printf("%Ld", nr);

	return 0;
}