Cod sursa(job #2790747)

Utilizator Andrei_TudorAndrei Tudor Andrei_Tudor Data 29 octombrie 2021 14:05:53
Problema Medie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream cin("medie.in");
ofstream cout("medie.out");
int n, v[9005], ap[7005];

void setap(){
    for(int i = 1; i <= n; i ++){
        ap[v[i]] ++;
    }
}

int main(){
    cin >> n;
    int maxx = -1;
    for(int i = 1; i <= n; i ++){
        cin >> v[i];
        if(maxx < v[i]){
            maxx = v[i];
        }
    }
    setap();
    int sol = 0;
    for(int x = 1; x <= maxx; x ++){
        int apx = ap[x];
        if(apx >= 3){
            sol = sol + apx * ((apx - 1) * (apx - 2) / 2);
        }
        for(int y = x + 1; y <= maxx; y ++){
            int apy = ap[y];
            int z = (x + y) / 2;
            int apz = ap[z];
            if(apx && apy && apz && !((x + y) % 2)){
                sol = sol + apx * apy * apz;
            }
        }
    }
    cout << sol;
    return 0;
}