Cod sursa(job #2121756)

Utilizator felixiPuscasu Felix felixi Data 4 februarie 2018 12:18:37
Problema Medie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("medie.in");
ofstream out("medie.out");

const int NMAX = 9000;
const int VMAX = 15000;
const int MEH  = 7000;

int doi[VMAX+2], unu[VMAX+2];

int main()
{
    int N;
    in >> N;
    for( int i = 1;  i <= N;  ++i ) {
        int x;
        in >> x;
        ++unu[x];
    }
    for( int i = 1;  i <= MEH;  ++i ) {
        for( int j = i;  j <= MEH;  ++j ) {
            doi[ i+j ] += unu[i] * unu[j];
            if( i == j )
                doi[i + j] -= ( (unu[i] * unu[i] - unu[i]) / 2 + unu[i] );
        }
    }
    long long Ans = 0;
    for( int i = 1;  i <= MEH;  ++i ) {
        Ans += doi[ 2*i ] * unu[i] - (unu[i] - 1) * unu[i];
    }
    out << Ans << '\n';
    return 0;
}