Cod sursa(job #2457247)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 16 septembrie 2019 23:22:09
Problema Medie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <bits/stdc++.h>

using namespace std;

const int SIZE = 10000005;
const int N_MAX = 9005;
const int F_MAX = 7005;

int n;
int ans;

int arr[N_MAX];
int freq[F_MAX];

char buffer[SIZE];
int p = - 1;

void getBuff() {
    fread(buffer, sizeof(char), SIZE, stdin);
}

char read() {
    ++p;
    if (p == SIZE) {
        getBuff();
        p = 0;
    }
    return buffer[p];
}

char getChar() {
    char ans;
    while (iswspace(ans = read()));
    return ans;
}

int getInt() {
    char c;
    int ans = 0;
    while (!isdigit(c = read()));
    while (isdigit(c) > 0) {
        ans = ans * 10 + (c - '0');
        c = read();
    }
    return ans;
}

int main() {
    freopen("medie.in", "r", stdin);
    freopen("medie.out", "w", stdout);
    n = getInt();
    for (int i = 1; i <= n; ++i) {
        arr[i] = getInt();
        ++freq[arr[i]];
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = 1 + i; j <= n; ++j) {
            if ((arr[i] + arr[j]) % 2 == 0) {
                if (arr[i] == arr[j]) {
                    ans += freq[arr[i]] - 2;
                } else {
                    ans += freq[(arr[i] + arr[j]) / 2];
                }
            }
        }
    }
    cout << ans;
    return 0;
}