Cod sursa(job #1864612)

Utilizator antanaAntonia Boca antana Data 31 ianuarie 2017 21:20:06
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

#define MAXV 7001

using namespace std;

int frq[MAXV];

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

    int x, n, i, j, maxv = -1;
    long long ans = 0;

    scanf("%d", &n);

    for(i=1; i<=n; ++i)
    {
        scanf("%d", &x);
        frq[x]++;

        if(maxv < x) maxv = x;
    }

    for(i=1; i<=maxv; ++i)
    {
        if(frq[i] >= 3) ans += 1LL*frq[i]*(frq[i]-1)*(frq[i]-2)/2;
        for(j=i+1; j<=maxv; ++j)
            if(!((i+j)%2))
                ans += 1LL*frq[i]*frq[j]*frq[(i+j)/2];
    }

    printf("%lld", ans);

    return 0;
}