Cod sursa(job #129772)

Utilizator savimSerban Andrei Stan savim Data 30 ianuarie 2008 09:26:37
Problema Medie Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>  
int i,j,n,nrtot;
int a[9010],nr[7010],fol[14010];
  
int main()  
{  

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

   scanf("%d",&n);  
   for (i=1; i<=n; i++)  
   {  
       scanf("%d",&a[i]);  
       nr[a[i]]++;  
   }
   for (i=1; i<=n-1; i++)
	for (j=i+1; j<=n; j++)
		if (a[i]>a[j])
		{
			int x=a[i];
			a[i]=a[j];
			a[j]=x;
		}
   for (i=1; i<=n-1; i++)
		for (j=i+1; j<=n; j++)
//      if ((a[i]+a[j])%2==0)
//         fol[(a[i]+a[j])/2]++;
		if ((a[i]<<1)>a[j] && nr[(a[i]<<1)-a[j]]!=0)
		{
			int o=0;
			if (a[i]==(a[i]<<1)-a[j]) o++;
			if (a[i]==a[j]) o++;
			if (nr[a[i]]-o>0) fol[a[i]]++;
		}
   nrtot=0;
   for (i=1; i<=14000; i++)  
	   if (fol[i]!=0 && nr[i]!=0) nrtot+=nr[i]*fol[i]-nr[i]*(nr[i]-1);

   printf("%d\n",nrtot);  
       
       
   return 0;      
}