Cod sursa(job #469027)

Utilizator darrenRares Buhai darren Data 5 iulie 2010 21:34:33
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
using namespace std;

int n,  f[7001], tot, mx;
int main()
{
	ifstream fin("medie.in");
	ofstream fout("medie.out");
	fin >> n;
	for (int i = 1, aux; i <= n; ++i)
	{
		fin >> aux;
		++f[aux];
		if (aux > mx)
			mx = aux;
	}
	
	int pos;
	for (int i = 1; i <= mx; ++i)
		if (f[i] != 0)
		{
			--f[i];
			for (int j = i + 1; j <= mx; ++j)
				if (f[j] != 0 && (i + j) % 2 == 0)
				{
					--f[j];
					pos = (f[i] + 1) * (f[j] + 1);
					tot += pos * f[(i + j) / 2];
					++f[j];
				}
			++f[i];
		}
	for (int i = 1; i <= mx; ++i)
		if (f[i] >= 3)
			tot += f[i] * (f[i] - 1) / 2 * (f[i] - 2);
	fout << tot;
}