Cod sursa(job #721179)

Utilizator fhandreiAndrei Hareza fhandrei Data 23 martie 2012 13:45:29
Problema Medie Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
//Include
#include <cstdio>
#include <set>
using namespace std;

//Constante
const int MAX_SIZE = 9001;
const int MAX_VAL = 7001;

//Variabile
int n;
int medie;
int perechi;
int numere[MAX_SIZE];

set<int> sume[MAX_VAL];

//Main
int main()
{
	freopen("medie.in", "rt", stdin);
	freopen("medie.out", "wt", stdout);
	scanf("%d", &n);
	
	for(int i=1 ; i<=n ; ++i)
	{
		scanf("%d", &numere[i]);
		sume[numere[i]].insert(i);
	}
	
	for(int i=1 ; i<n ; ++i)
	{
		for(int j=i+1 ; j<=n ; ++j)
		{
			if((numere[i] + numere[j]) & 1)
				continue;
			medie = (numere[i] + numere[j]) >> 1;
			
			perechi += sume[medie].size();
			
			if(sume[medie].find(i) != sume[medie].end())
				--perechi;
			
			if(sume[medie].find(j) != sume[medie].end())
				--perechi;
		}
	}
	
	printf("%d", perechi);
	
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}