Cod sursa(job #253331)

Utilizator 630r63Ilinca George Mihai 630r63 Data 5 februarie 2009 17:57:04
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
 # include <stdio.h>  
   
 using namespace std;  
   
 # define FIN "medie.in"  
 # define FOUT "medie.out"  
 # define MAXN 7001  
 # define v(i) (V[i]*(V[i]-1)*(V[i]-2)>>1)  
   
 int N,i,j,x,Mx = 0;  
 long long rez = 0;  
 int V[MAXN];  
   
     int main()  
     {  
         freopen(FIN,"r",stdin);  
         freopen(FOUT,"w",stdout);  
           
         scanf("%d",&N);  
         for (i = 1; i <= N; ++i)  
           {  
              scanf("%d",&x);  
              if (x > Mx) Mx = x;  
              V[x]++;  
           }  
             
         for (i = 1; i <= Mx; ++i)  
           if (V[i] != 0)  
             {  
                if (V[i] > 2) rez += v(i);  
                for (j = i+1; j <= Mx; ++j)  
                  if (V[j]!=0&&V[(i+j)/2]!=0&&(i+j)%2==0)  
                    rez += V[i]*V[j]*V[(i+j)>>1];  
             }  
               
         printf("%lld",rez);  
           
         return 0;  
}