Cod sursa(job #223289)

Utilizator cotofanaCotofana Cristian cotofana Data 28 noiembrie 2008 00:23:58
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

int v[14000]={0}, nr, n, max=0;
long long s=0;

long long aranjamente(int n, int i)
{
	long long g=1;
	int j;
	for (j=n-i+1; j<=n; j++) g*=j;
	return g;
}

int main()
{
	int i, j;
	freopen("medie.in", "r", stdin);
	freopen("medie.out", "w", stdout);
	scanf("%d\n", &n);
	for (i=0; i<n; i++)
	{
		scanf("%d\n", &nr);
		v[nr]++;
		if (nr>max) max=nr;
	}
	for (i=1; i<=max; i++)
		for (j=i; j<=max; j++)
		{
			if (i==j && v[i]>=3) s+=aranjamente(v[i], 3)/2;
			else if (v[i] && v[j] && v[(i+j)/2] && i!=j && (i+j)%2==0) s+=(long long)v[i]*v[j]*v[(i+j)/2];
		}
	printf("%lld\n", s);
	return 0;
}