Cod sursa(job #1733369)

Utilizator akaprosAna Kapros akapros Data 24 iulie 2016 16:02:25
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
#define maxN 9002
#define maxV 7002
#define ll long long
using namespace std;
int n, m, v[maxV], maxv;
ll ans;
void read()
{
    int i;
    freopen("medie.in", "r", stdin);
    scanf("%d", &n);
    for (i = 1; i <= n; ++ i)
    {
        int x;
        scanf("%d", &x);
        ++ v[x];
        if (x > maxv)
            maxv = x;
    }
}
void solve()
{
    int i, j;
    for (i = 1; i <= maxv; ++ i)
        if (v[i])
    {
        for (j = 1; j < i; ++ j)
            ans += 1LL * v[i] * v[j] * v[2 * i - j];
        if (v[i] > 2)
            ans += 1LL * (1LL * v[i] * (v[i] - 1)) / 2 * (v[i] - 2);
    }
}
void write()
{
    freopen("medie.out", "w", stdout);
    printf("%lld", ans);
}
int main()
{
    read();
    solve();
    write();
    return 0;
}