Cod sursa(job #2982692)

Utilizator 100pCiornei Stefan 100p Data 20 februarie 2023 18:48:10
Problema Medie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>

#define MAX 9000
#define FILES freopen("medie.in","r",stdin);\
              freopen("medie.out","w",stdout);
#define SMAX 7000
#define int long long

using namespace std;

int n, mx, fr[MAX + 5], a, ans, sumFreq[SMAX + 5];

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    FILES
    std::cin >> n;
    for(int i = 1; i <= n; ++i)
        std::cin >> a, fr[a]++;

    for(int i = 1; i <= SMAX; ++i)
    {
        for(int j = i; j <= SMAX; ++j)
        {
            if((i + j) % 2 == 0)
            {
                if(i == j)
                {
                    sumFreq[(i+j)/2] += fr[i] * (fr[j] - 1) / 2;
                    ans -= fr[i] * (fr[j] - 1);
                }
                else
                {
                    sumFreq[(i+j)/2] += fr[i] * fr[j];
                }
            }
        }
    }
    for(int i = 1; i <= SMAX; ++i)
    {
        ans += fr[i] * sumFreq[i];
//        std::cout << fr[i] << ' ' << sumFreq[i] << '\n';
    }
    std::cout << ans;
}