Cod sursa(job #296375)

Utilizator ucc_5Usurelu Catalin ucc_5 Data 4 aprilie 2009 18:21:23
Problema Medie Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream.h>

ifstream f("medie.in");
ofstream g("medie.out");

int a[9002],n;
long NrSol;

void citire ()
{ f>>n; 
  for (int i=1; i<=n; i++)
   f>>a[i];
  f.close ();
}

void search ()
{  int i,j,aux,rep[7002]={0};
   long v[7002]={0};
  # define div2(x) ( ! ((x) & 1) )

	for(i=1; i<n; i++)
	{
		++rep[ a[i] ];

		for(j=i+1; j<=n; j++)
			if ( div2( aux=a[i]+a[j] ) )
				++v[aux>>1];
	}

	++rep[a[n]];

	for(i=1; i<=n; i++)
		if ( v[ a[i] ] )
			NrSol += long( v[ a[i] ] - rep[ a[i] ] + 1 );
}

void scrie ()
{ g<<NrSol;
  g.close ();
}

int main ()
{ citire ();
  search ();
  scrie ();
  return 0;
}