Cod sursa(job #76422)

Utilizator wefgefAndrei Grigorean wefgef Data 9 august 2007 19:25:35
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>

const int n = 7000;

int v[n+1];
long long ret;

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

	int m, tmp;
	for (scanf("%d", &m); m; --m)
		scanf("%d", &tmp), ++v[tmp];
}

inline int min(int a, int b) { return (a < b ? a : b); }
inline int max(int a, int b) { return (a > b ? a : b); }

void solve()
{
	int i, j;

	for (i = 1; i <= n; ++i)
		for (j = max(1, 2*i-n); j <= min(n, 2*i-1); ++j)
			if (i == j)
			{
				if (v[i] >= 3)
					ret += (long long)(v[i] * (v[i]-1) * (v[i]-2));
			}
			else
				ret += (long long)(v[i] * v[j] * v[2*i-j]);
	ret /= 2;
	printf("%lld\n", ret);
}

int main()
{
	readdata();
	solve();
	return 0;
}