Cod sursa(job #118097)

Utilizator mithyPopovici Adrian mithy Data 23 decembrie 2007 02:38:33
Problema Medie Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#define NMax 9000

int n;
int a[NMax], v[NMax], frecv[NMax];
FILE *f, *g;

void citire();
void rez();
int comp( const void *a, const void *b )
{
	return ( *(int*)a-*(int*)b );
}

int main()
{
	citire();
	rez();
	return 0;
}

void rez()
{
	int i, j;
	long max = 0;
	
	for (i=1; i<=n-1; i++)
	{
		frecv[a[i]]++;
		for (j=i+1; j<=n; j++)
			if ( (a[i]+a[j])%2 == 0 )
				v[(a[i]+a[j])/2]++;
	}
	frecv[a[n]]++;
	
	for (i=1; i<=n; i++)
		if ( v[a[i]] )
			max = long(max+v[a[i]]-frecv[a[i]]+1);
			
	fprintf( g, "%ld\n", max );
}

void citire()
{
	int i;
	f = fopen( "medie.in", "rt" );
	g = fopen( "medie.out", "wt" );
	
	fscanf( f, "%d", &n );
	for (i=1; i<=n; i++)
		fscanf( f, "%d", &a[i] );

	qsort( a, n+1, sizeof(a[1]), comp );
}