Cod sursa(job #1716789)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 13 iunie 2016 18:56:57
Problema Medie Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <vector>

using namespace std;

int n, m, r[7001], w[14001], v[9001];
long long s;

void read();
void solve();
void write();

int main()
{
    read();
    solve();
    write();
    return 0;
}

void read()
{
    freopen ( "medie.in", "r", stdin );
    scanf ( "%d", &n );
    for ( int i = 1; i <= n; ++i )
        scanf ( "%d", &v[i] ),
        ++w[v[i]],
        m = max(m, v[i]);
    fclose(stdin);
}

void solve()
{
    for ( int i = 1; i <= n; ++i )
        for ( int j = i + 1; j <= n; ++j )
            if ( i != j )
                ++r[v[i]+v[j]];
    for ( int i = 1; i <= m; ++i )
        if (r[2*i] && w[i])
            s += r[2*i]*w[i]-w[i]*(w[i]-1);
}

void write()
{
    freopen ( "medie.out", "w", stdout );
    printf ( "%lld\n", s );
    fclose(stdout);
}