Cod sursa(job #1732895)

Utilizator silkMarin Dragos silk Data 22 iulie 2016 22:11:14
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>
#define NMax 14002

int ap[NMax];
int v[NMax];
int a[NMax];

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

    int i,j,n,maxim;
    long long ans = 0;

    scanf("%d",&n);
    for( maxim = 0, i = 1; i <= n; ++i )
    {
        scanf("%d",&a[i]);
        ++ap[ a[i] ];

        if( a[i] > maxim ) maxim = a[i];
    }

    for( i = 1; i < maxim; ++i )
        if( ap[i] )
            for( j = i + 1; j <= maxim; ++j  )
                if( ap[j] )
                v[  i + j ] += ap[i] * ap[j];

    for( i = 1; i <= maxim; ++i )
    if( ap[i] >= 2 )
    v[ i + i ] += ( ap[i] - 1 ) * ( ap[i] - 2 ) / 2;


    for( i = 1; i <= n; ++i )
    ans = ans + v[ 2 * a[i] ];


    printf("%lld\n",ans);




return 0;
}